Invata Sistemul de Operare Android – Partea 3

Bine ati venit pe ItAssistant. Aceasta noua serie de tutoriale isi propune sa va familiarizeze cu Sistemul de Operare Android astfel incat sa puteti sa scrieti singuri aplicatii pentru propriul SmartPhone, si de ce nu, aplicatia sa ajunga in top pe Android Market.

Inainte de a incepe trebuie sa cunoasteti destul de bine limbajul de programare Java si conceptele Programarii Orientata Obiect; puteti sa aruncati o privire peste tutorialele noastre avansate: Invata Java

Android – Debugging si Depanare

Depanarea este foarte importanta in procesul de realizare a aplicatiilor pentru dispozitive mobile. Acest proces este insa putin diferit fata de depanarea programelor clasice pentru calculator, in primul rand pentru ca ruleaza pe alt dispozitiv. Tocmai din acest motiv, avem nevoie de programe spcializate pentru a realiza depanarea. De asemenea, fiind vorba de dispozitive mobile, apar si anumite evenimente specifice, cum ar fi apeluri telefonice, descarcarea bateriei etc., evenimente ce trebuie tratate intr-un fel sau altul.

In continuare vom face urmatoarele presupuneri:

$SDK = {directorul in care se gaseste SDK-ul de android}

Android – DDMS

Utilitarul pentru depanarea aplicatiilor pentru Android se numeste DDMS (Dalvik Debug Monitor System). Acesta foloseste de fapt un alt utilitar, numit adb (Android Debug Bridge), pentru a se conecta la simulatoare sau dispozitive fizice.

Cu ajutorul DDMS putem vizualiza parametrii dispozitivului si al programelor ce ruleaza pe acesta. DDMS poate fi accesat ca un program separat (standalone) sau sub forma unei perspective in Eclipse.

DDMS – Software separat

DDMS se gaseste in directorul tools din SDK sau toos/lib, in functie de versiunea de SDK.

$SDK/tools/ddms
$SDK/tools/lib/ddms.jar
Android DDMS software

DDMS – Perspectiva a Eclipse

A doua varianta de a accesa DDMS este sub forma unei perspective in Eclipse. Activarea se face din meniul:

Window -> Open Perspective -> DDMS
Android DDMS eclipse

DDMS – Utilizare

Cele mai importrante functii pe care DDMS le poate indeplini sunt:

  • Afisarea log-urilor dispozitivelor
  • Afisarea informatiilor despre procesele curente
  • Controlul simulatoarelor

Dispozitive

DDMS poate afisa informatii de depanare atat de la simulatoarele pornite cat si de la dispozitivele conectate la calculator. Alegerea dispozitivului curent se face prin selectarea lui din panoul Devices.

Android – Loguri

Logurile sistemului sunt cele mai importante informatii pe care le poate oferi DDMS. Aici sunt descrise toate actiunile indeplinite de catre dispozitiv, exceptiile aparute cum si informatii necesare depanaraii. Daca folositi programul separat, log-urile vor aparea in panoul denumit Log, iar daca folositi perspectiva din Eclipse panoul se numeste LogCat (a nu se confunda cu Console! – acestea sunt mesajele afisate de catre Eclipse).

Fiecare mesaj din aceasta lista este insotit de urmatoarele date (fiecare pe cate o coloana):

  • Time - data si ora la care a fost scris mesajul
  • Tipul mesajului
    1. I – Information – mesaj informativ
    2. D – Debug – mesaj utile la depanare
    3. W – Warning – mesaj de avertizare (exceptiile ce nu sunt foarte importante si nu au un imact important asupra componentei apar sub forma de astfel de mesaje)
    4. E – Error – mesaj de eroare (exceptiile ce intrerup o componenta apar sub forma de astfel de mesaje)
    5. V – Verbose – informatii suplimentare afisate de programe (in general la cerere, se folosesc la depistarea problemelor de functionare rezultate in general din cauza configurarii gresite a programelor)
  • PID - ID-ul procesului ce a generat mesajul
  • Tag - Eticheta sau categoria mesajului (este util pentru filtre)
  • Message - mesajul propriu-zis (text)

Este de remarcat ca fiecare mesaj reprezinta cate o linie de text. Spre exemplu, exceptiile sunt in general afisate pe mai multe linii, acestea continand foarte multa informatie. Astfel, fiecare exceptie este reprezentata de mai multe mesaje de log.

Ceea ce ne intereseaza in continuare este cum putem genera astfel de mesaje de log. SDK-ul ne pune la dispozitie doua metode:

  • functiile statice ale clasei Log
  • System.out.println mesajele catre consola stndard (stdout)

Exemplu pentru clasa Log:

Log.println (Log.DEBUG, "exemplu log", "aceasta este un mesaj de log cu eticheta 'exemplu log'");

Exemplu pentru utilizarea System.out.println. De remarcat este ca mesajele de log trimise sub aceasta forma vor avea eticheta “System.out” si vor fi de tipul Information.

System.out.println ("aceasta este un mesaj catre consola standard");

Un alta functie importanta ce trebuie discutata este posibilitatea de filtrare a mesajelor de log. Deoarece LogCat agrega toate mesajele de log din sistem, urmarirea unor anumite mesaje poate fi dificila.

Pentru a usura aceasta sarcina, se pot genera filtre dupa:

  • PID
  • Tag
  • Tip

Un filtru se creaza prin apasarea butonului plus verde din bara panoului Log (respectiv LogCat in Eclipse).

Android DDMS Filtre

Android – Controlul Simulatorului

Desi destul de exact, simulatorul Android nu poate totusi simula functiile unui telefon real. Pentru a putea totusi testa comportamentul aplicatiilor cat mai bine, DDMS ne pune la dispozitie un panou de control (Emulator Control).

Astfel putem sa simulam:

  • starea conexiunii de voce
  • primirea unui apel telefonic
  • primirea unui SMS
  • date primite de la GPS

Evident, acest panou nou are nici un efect asupra dispozitivelor reale.

Threads

In panoul Threads sunt afisate informatiile despre fiecare fir de executie al fiecarui proces.

Deoarece aceste informatii sunt culese prin intermediul unei legaturi de retea, overhead-ul este destul de mare. Pentru nu a incetini semnificativ functionarea dispozitivului (care este mereu nevoit sa trimita aceste date), vizualizarea trebuie activata. Astfel, se selecteaza procesul dorit (din panoul Devices) si se apasa butonul Update Threads. Dupa ce s-au cules informatiile dorite, monitorizarea se poate opri prin inca o apasare a butonului.

Android DDMS threads

Android – Hierachy Viewer

Un alt program foarte util pentru depanare este hierachyviewer. Acesta permite vizualizarea arborescenta a compozitiei fereastrelor. De asemenea afiseaza parametrii fiecarui View si timpul de incarcare al acestuia. O alta functie importanta este posibilitatea capturarii unei imagini a View-ului.

Trebuie mentionat ca putem analiza cu acest program orice aplicatie (componenta) ce ruleaza pe un dispozitiv. Ne putem astfel inspira asupra modului in care este construita interfata grafica.

Hierachy Viewer – Software separat

Programul se gaseste in directorul tools sau tools/lib in functie de versiune.

$SDK/tools/hierarchyviewer
$SDK/tools/lib/hierarchyviewer.jar

Hierachy Viewer – Perspectiva a Eclipse

A doua varianta de a accesa hierachyviewer este sub forma unei perspective in Eclipse. Activarea se face din meniul:

Window -> Open Perspective -> hierachyviewer

Android – Vizualizarea ierarhiei de View-uri

La fel ca DDMS, hierachyviewer functioneaza atat cu simulatoare cat si cu dispozitive reale. La pornire, este afisata lista dispozitivelor conectate. Se alege un dispozitiv (stanga) si o componenta ce ruleaza pe acel dispozitiv (dreapta) si se apasa butonul Load View Hierarchy. Daca nu s-a ales nici o componenta, programul va afisa componenta ce este in capatul Task-ului curent.

Android Hierarchyviewer devices

Afisarea ierarhiei de View-uri se face sub forma unui arbore avand alaturate fie propietatiile, fie imaginiea fiecarui View. Selectarea intre cele doua moduri se face folosind butoanele de la baza ferestrei programului.

Android Hierarchyviewer view properties

Vizualizarea ierarhiei impreuna cu imaginiea ferestrei joaca un rol important in realizarea design-ului. Peste imaginea reala se poate suprapune o fotografie cu design-ul dorit. Fotografia suprapusa este semitransparenta, astfel permitand dezvoltatorilor sa faca corecturi asupra interfetei grafice, pana ce acesta se potriveste perfect cu design-ul.

Android Hierarchyviewer view image

Related posts:

  1. Invata Sistemul de Operare Android – Partea 1
  2. Invata Sistemul de Operare Android – Partea 2
  3. Invata Sistemul de Operare Android – Partea 8
  4. Invata Sistemul de Operare Android – Partea 4
  5. Invata Sistemul de Operare Android – Partea 5
Tags: , , , , , , , , , ,

V-a placut acest tutorial? Aveti anumite sugestii pentru urmatoarele tutoriale video? Lasati un comentariu! Feedback-ul vostru este foarte important pentru noi.

Pentru intrebari mai elaborate, cu caracter general, va rugam folositi forumul si in cel mai scurt timp veti primi un raspuns. Astfel ii vom ajuta si pe ceilalti sa invete din eventualele probleme.