Tutorial Android (3) – Cum sa dezvolti, testezi si sa intelegi o aplicatie de tip Hello World

7 comments - This post in english

In acest articol vom vedea modul de utilizare a mediului de lucru Eclipse si a plugin-ului ADT (Android Development Toolkit) pentru a dezvolta o aplicatie mobila Android, clasicul exemplu Hello World! . In ciuda simplitatii sale, aplicatia imprima doar un mesaj pe ecran, ea este foarte importanta pentru a intelege platforma Android deoarece structura ei reprezinta nucleul pentru orice alta aplicatie mobila Android.

Alte concepte descrise in acest articol va vor ajuta sa:

  • creati un proiect pentru o aplicatie mobila Android utilizand Eclipse si plugin-ul ADT (Android Development Toolkit);
  • testati aplicatia folosind diferite emulatoare pentru dispozitive mobile Android ;
  • intelegeti si sa cititi structura proiectului Android.

Alte subiecte care fac parte din acest tutorial Android sunt accesibile prin intermediul articolului Tutorial Android – Descriere si cuprins.

Software-ul necesar pentru a dezvolta aplicatia Android Hello World este descris in Tutorial Android (01) – Instrumente necesare si configurare mediu de lucru, iar unele concepte cheie la care se face referire in acest articol au fost descrise in detaliu in Android Tutorial (02) – Concepte, activitati si resurse ale unei aplicatii Android.

 

Cum sa dezvolti prima aplicatie Android, Hello World

  1. Dupa ce ati pornit mediul de lucru Eclipse, configurati spatiul de lucru intr-o locatie cunoscuta; in Eclipse acest lucru se face selectand File –> Switch Workspace –> Other…din meniul principal;
  2. Din meniul IDE-ului Eclipse, selectati File -> New -> Project (NUJava Project);
    Categoria de proiecte Android in fereastra New Project din Eclipse

    Categoria de proiecte Android in fereastra New Project din Eclipse

  3. Daca ati instalat plugin-ul ADT (Android Development Toolkit) si SDK-ul Android (daca NU, atunci cititi Tutorial Android (01) – Instrumente necesare si configurare mediu de lucru), veti vedea categoria Android in fereastra de dialog New Project; din aceasta selectati Android Project;
  4. Setati proprietatile pentru proiectul Android:
    1. Project name (Numele proiectului): HelloWorldAndroid;
    2. Create new project in workspace (Creati un nou proiect in spatiul de lucru): bifat (valoare implicita);
    3. Use default location (Utilizati locatia implicita): in mod implicit in spatiul de lucru Eclipse sau o puteti modifica;
    4. Build target (Versiune platforma Android): selectati Android 2.3.3 (Gingerbread), deoarece de la versiunea 3.0 (Honeycomb), platforma Android este destinata tabletelor si dispozitivelor cu ecran mai mare;
    5. Application name (Numele apicatiei): Hello World Android (acesta este numele care va fi afisat si in bara de titlu a ferestrei principale);
    6. Package name (Numele pachetului): eu.itcsolutions.tutorial.android (aceasta corespunde conventiilor Java de denumire pentru pachete);
    7. Create Activity (Crearea activitate): HelloActivity (lasati bifata optiunea si setati numele activitatii);
    8. Min SDK Versiune: 10;
    9. Asta este tot; apasati Finish.

Proprietati proiect Android - Partea 1

Proprietati proiect Android - Partea 1

Proprietati proiect Android - Partea 2

Proprietati proiect Android - Partea 2

In ultimul pas al wizard-ului exista o setare optionala: Create project from existing sample (Crearea proiect pornind de la exemple existente). Plugin-ul ADT (Android Development Toolkit) si SDK-ul Android vin cu o multime de exemple complete de aplicatii mobile, ce pot fi rulate imediat. Aveti posibilitatea sa le testati mai târziu, dar acum vom crea o simpla aplicatie Android de la zero.

 

Cum sa testezi aplicatia Android, Hello World

Daca vrem sa testam aplicatie Android Hello World trebuie sa folosim un emulator pentru platforma Android – un Android Virtual Device (AVD). Emulatoarele sunt gestionate de Android SDK and AVD manager (citeste Tutorial Android (01) – Instrumente necesare si configurare mediu de lucru).

Deoarece emulatorul sau dispozitivul virtual – Android Virtual Device (AVD) ia ceva timp sa se incarce este mai bine sa-l deschideti si sa il lasati sa ruleze intre intre sesiuni diferite de testare a aplicatiei. Deoarece vom folosi platforma Android 2.3.3 ( Gingerbread), vom crea un AVD pentru ea:

  • deschide Android SDK and AVD manager din Windows folosind Start -> Programs -> Android SDK Tools sau din Eclipse, utilizând optiunea Window -> Android SDK and AVD Manager din meniu;
  • in panoul din stânga, selectati categoria Virtual devices;
  • in panoul principal faceti clic pe butonul New…;
  • in fereastra Create new Android Virtual Device setati numele emulatorului virtual ( A ), Platforma Android ( B ), dimensiunea cardului de memorie ( C ), skin-ul emulatorului (D ) si alte setari hardware ( E);
    Android AVD Settings

    Android AVD Settings

  • selectati dispozitivul virtual nou creat (A) si porneste emulatorul cu ajutorul butonului Start… butonul (B);

    Lansare emulator Android Virtual Device din consola Android SDK and AVD Manager

    Lansare emulator Android Virtual Device din consola Android SDK and AVD Manager

  • definiti setarile de afisare a emulatorului:

    Setari interfata pentru emulatorul Android Virtual Device

    Setari interfata pentru emulatorul Android Virtual Device

  • asteptati pentru a se incarca emulatorul (poate dura pâna la 1-2 minute):

Android Virtual Device pentru Platforma Android 2.3.3

Android Virtual Device pentru Platforma Android 2.3.3

Pentru a testa aplicatia Android, selectati proiectul in fereastra Package Explorer din Eclipse si selectati Run -> Run (Ctrl + F11) in meniu sau butonul Run din bara de instrumente Eclipse.

Testare aplicatie Android in Eclipse

Testare aplicatie Android in Eclipse

Daca doriti sa schimbati modul in care se executa aplicatia mobila Android (poate doriti sa o testati) puteti utiliza optiunea Run -> Run As din meniul Eclipse.

Dupa ce a aplicatia a inceput sa ruleze in emulator, veti vedea mesajul simplu Hello World, HelloActivity! pe ecranul dispozitivului virtual.

Aplicatie Android Hello World in emulator

Aplicatie Android Hello World in emulator

Important !
Intre sesiuni diferite de rulare a aplicatiei, nu inchideti emulatoru deoarece trebuie sa asteptati ca acesta sa se incarce de fiecare data. Lasati-l sa ruleze si de fiecare data când porniti aplicatia Android, acesta va fi reincarcata automat in emulator.

 

Cum sa citesti si sa intelegi aplicatia Hello World

In ciuda simplitatii sale, aplicatia tip Hello World este importanta deoarece va ajuta sa intelegeti:

  • pasii de dezvoltare;
  • modul de utilizare a instrumentelor de dezvoltare;
  • Important ! structura si componentele aplicatiei mobile Android;

Principalul motiv pentru care se foloseste Eclipse IDE si plugin-ul ADT (Android Development Toolkit) este eficienta. IDE-ul va va ajuta sa gestionati componentele proiectului si resursele. Iar mai târziu, va fi foarte util in gestionarea design-ului si a componentelor aplicatiei.

Daca ne uitam la structura proiectului Android in fereastra Package Explorer din Eclipse vom observa o serie de directoare:

Structura proiectului Android in Eclipse

Structura proiectului Android in Eclipse

  • src/ – utilizat pentru a stoca toate fisierele Java ale proiectului Android, care sunt definite de programator; contine clase utilitare interne sau clase asociate cu activitati, Views, …; fisierul HelloActiviy.java contine definitia clasei HelloActivity , care este derivata din clasa Activity; clasa HelloActivity gestioneaza formularul principal al aplicatiei si furnizeaza metode pentru evenimente ce notifica schimbarile care survin in starea activitatii (cum ar fi onCreate(Bundle savedInstanceState))
public class HelloActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
    	//call to the base class method
        super.onCreate(savedInstanceState);
        //set the layout of the display
        setContentView(R.layout.main);
    }
}
  • gen/ – folosit pentru a stoca fisiere Java generate de IDE si plugin-ul ADT; daca va reamintiti noutiunile din Android Tutorial (02) – Concepte, activitati si resurse ale unei aplicatii Android, pentru fiecare resursa din directorul res, este generat un ID unic in fisierul R.java; ID-ul este folosit pentru a referi aceste resurse fara a utiliza siruri de caractere constante; dupa cum se poate observa in metoda onCreate() din clasa HelloActivity, se utilizeaza declaratia R.layout.main pentru a referi design-ul interfetei ce este definit de fisierul main.xml.
public final class R {
    public static final class attr {
    }
    public static final class drawable {
        public static final int icon=0x7f020000;
    }
    public static final class layout {
        public static final int main=0x7f030000;
    }
    public static final class string {
	//id of the application name string
        public static final int app_name=0x7f040001;
	//id of the Hello World, HelloActivity! string
        public static final int hello=0x7f040000;
    }
}
Important !
Nu este recomandat sa modificati direct fisierul R.java deoarece acesta este generat automat de plugin-ul ADT.
  • res/utilizat pentru stocarea resurselor aplicatiei mobile (Android Tutorial (02) – Concepte, activitati si resurse ale unei aplicatii Android); fiecare nume de subdirector are o semnificatie (de exemplu, directorul layout contine setarile, sub forma de fisier XML, pentru interfata aplicatiei); de exemplu directorul res/values/ contine fisiere XML care stocheaza diferite tipuri de valori, cum ar fi siruri de caractere in strings.xml.
Important !
Deoarece fisierele ce definesc resurse sunt compilate, NU salvati fisiere direct in interiorul directorului res/, deoarece aceasta va provoca o eroare de compilare.
<resources>
    <string name="hello">Hello World, HelloActivity!</string>
    <string name="app_name">Hello World Android</string>
</resources>

In ceea ce priveste interfata aplicatiei Hello World, exist o singura fereastra/formular ce contine un mesaj text: Hello World. HelloActivity!.

Componentele aplicatiei mobile Android

Componentele aplicatiei mobile Android

Fereastra principala a aplicatiei mobile Android este gestionata de un obiect de tip Activity (Android Tutorial (02) – Concepte, activitati si resurse ale unei aplicatii Android). Continutul ferestrei/formularului este compus din obiecte de tip View. In exemplul anterior, textul face parte dintr-un control de tip TextView.

In articolele urmatoare vor fi detaliate metodele de proiectare si de control al interfatei pentru aplicatii mobile Android.

Alte subiecte care fac parte din acest tutorial Android sunt accesibile prin intermediul articolului Tutorial Android – Descriere si cuprins.

Daca ai probleme cu exemplele sau crezi ca nu ai inteles elementele descrise, pune o intrebare in zona de comentarii si iti vom raspunde imediat. De asemenea, orice sugestie sau obervatie care duce la imbunatatirea materialului este bine venita.

Daca ti-a placut sau ti-a fost util acest tutorial atunci spune-le si altora despre el sau arunca-ti o privire pe reclamele din aceasta pagina. Referirea acestui material este cel mai bun mod de a aprecia autorul.


,


  1. #1 by Cristina on September 25th, 2011

    Multumesc pentru aceste articole, sunt excelente.

    Am o problema la afisare “Hello World, HelloActivity!”.
    In eclipse imi afiseaza aceasta eroare: “[2011-09-25 10:21:03 - HelloWorld] ActivityManager: Warning: Activity not started, its current task has been brought to the front”.

    Am urmat pas cu pas si instalarea si acest tutorial. Ai idee de ce afiseaza aceasta eroare?

    Mersi….

    • #2 by Catalin on September 26th, 2011

      Buna Cristina,

      Multumesc pentru interes si ma bucur ca materialele sunt de folos.
      Cred ca pana in acest moment ti-ai dat seama ca nu este nicio eroare si ca aplicatia functioneaza normal.

      Mesajul respectiv de avertizare iti spune ca aplicatia deja ruleaza in emulator si ca incerci sa o rulezi inca o data fara sa fi facut modificari asupra codului sursa. De obicei, cand emulatorul este pornit are interfata blocata iar aplicatiile sunt in background. Daca il deblochezi (trage de butonul cu lacat catre dreapta), aplicatia este adusa in prim-plan.
      Presupun ca asta s-a intamplat si la tine. Daca nu, poate fi o problema cu plugin-ul ADT care se rezolva prin repornirea emulatorului sau prin recompilarea proiectului.

  2. #3 by Cristina on September 25th, 2011

    Buna.

    Am cautat un tutorial cum se incarca o aplicatie pe telefon (aplicatia din acest tutorial) si nu am gasit.

    Ai putea sa imi spui te rog care sunt pasi?

    Mersi.

    • #4 by Catalin on September 26th, 2011

      Buna Cristina,

      Pana cand o sa pun un nou articol pe tema asta, versiunea scurta a solutiei este:
      1. Conecteaza dispozitivul Android printr-un cablu USB
      2. Daca e nevoie instaleaza drivere (in Windows 7 sau Vista se face automat) si permite accesul la dispozitiv;
      3. Verifica ce platforma de Android este pe dispozitiv si configureaza-ti proiectul pentru ea;
      4. Ruleaza aplicatia. In acest moment trebuie sa apara fereastra Android Device Chooser din care poti selecta fie emulatorul, fie dispozitivul conectat;
      5. Daca nu apare fereastra Android Device Chooser, click-dreapta pe proiect si alegi Run As -> Run Configurations…. In fereastra Run Configurations alegi tab-ul Target si selectezi optiunea Manual pentru Deployment Target Selection Mode

      Sper sa fie ok solutia. Daca nu, o sa pun un nou articol cu capturi de ecran.

  3. #5 by Alexandroid on May 30th, 2012

    O completare la commentul domnului Catalin Boja:
    Trebuie sa specifici din interiorul dispozitivului Android(telefon sau tableta) ca vrei sa instalezi aplicatii pe el, direct din mediul de dezvoltare(Eclipse):
    1.Settings-Developer Options- USB Debugging
    2.Settings – Security – Unknown Sources
    Trebuie sa faci chestiile astea 2 ca sa ajungi la punctul 4. indicat de Catalin, altfel nu o sa-ti apara in lista dispozitivele.
    Spor!

(will not be published)