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
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
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
- I – Information – mesaj informativ
- D – Debug – mesaj utile la depanare
- 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)
- E – Error – mesaj de eroare (exceptiile ce intrerup o componenta apar sub forma de astfel de mesaje)
- 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 – 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 – 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.
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.
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.
Related posts:
- Invata Sistemul de Operare Android – Partea 1
- Invata Sistemul de Operare Android – Partea 2
- Invata Sistemul de Operare Android – Partea 8
- Invata Sistemul de Operare Android – Partea 4
- Invata Sistemul de Operare Android – Partea 5









