miercuri, 19 septembrie 2012

Cum sa faci o aplicatie ANDROID

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

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>
  • AndroidManifest.xml – fisierul XML reprezinta fisierul manifest al aplicatiei Android utilizat pentru a declara componentele aplicatiei, permisiunile utilizatorilor, nivelul minim al API-ului Android necesar rularii aplicatiei, specificatii hardware si software si alte caracteristici (pentru detalii puteti citi Android Developers page on the Manifest File):
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.