CATEGORII DOCUMENTE |
Aeronautica | Comunicatii | Electronica electricitate | Merceologie | Tehnica mecanica |
CARACTERISTICI ALE SISTEMULUI DE OPERARE "ANDROID" IN DEZVOLTAREA APLICATIILOR MOBILE
Abstract: The Android operating system was developed to allow users with minimum programming knowledge to develop genuine applications for their own mobile devices. It is based on the Linux kernel and it uses an optimized virtual machine to manage the resources, it's own libraries.
The simple Android applications can be classified into 3 types: foreground applications, background services and intermittent activity. The application developed and described in this paper uses the GoogleMaps API to make the mobile device act like a GPS and find locations all over the globe. The applications are developed using the Java programming language, so they can run on any mobile device.
Keywords: Android OS, open operating system, GoogleMaps, Java Programming Language.
I. Introducere
Sistemul de operare Android a fost lansat in anul 2007, de catre compania Google sub egida Open Handset Alliance.
Open Handset Alliance este un grup de producatori de echipamente si aplicatii (Google, NTT DoCoMo, Sprint Nextel si HTC) al caror scop comun este acela de a crea un sistem de operare "deschis" pentru terminalele mobile.
Produsul software lansat de Google este un set complet de aplicatii pentru dispozitivele mobile si contine un sistem de operare, un strat intermediar intre sistemul de operare si aplicatiile mobile critice. Sistemul de operare Android a fost construit de la zero pentru a le da posibilitatea dezvoltatorilor sa creeze aplicatii mobile care sa beneficieze in totalitate de ceea ce poate oferi un dispozitiv mobil. Ceea ce au intentionat cei de la Google, prin lansarea produsului Android a fost construirea unui sistem de operare care sa fie cu adevarat deschis, permitand unei aplicatii sa apeleze orice functie a echipamentului (efectuarea unui apel telefonic, transmiterea de mesaje text, utilizarea camerei video/foto) oferindu-le dezvoltatorilor posibilitatea sa creeze aplicatii coezive pentru utilizatori.
Proiectul Android a fost lansat in varianta beta, oferind astfel dezvoltatorilor ocazia sa creeze diverse aplicatii, care sa imbunatateasca acest sistem.
Este un sistem open source, ce poate fi extins sa incorporeze noile tehnologii de varf pe masura ce acestea apar.
Sistemul de operare Android nu face diferente intre aplicatiile nucleului telefonului si cele provenite de la terti, acestea putand fi construite in asa fel incat sa aiba aceeasi prioritate de acces la resursele telefonului, oferind astfel utilizatorilor o paleta larga de aplicatii si servicii..
De curand, compania Google a lansat o noua versiune pentru Android, mai exact versiunea 1.6 care aduce o serie de imbunatatiri sistemului.
Noua versiune Android poarta numele de Android 1.6 (nume de cod "Gogoasa").
Google a lansat deja software development kit-ul (SDK) ultimei versiuni, SDK ce aduce diverse schimbari atat pentru utilizatori cat si pentru programatori.
Cea mai impresionanta schimbare se refera la imbunatatirea Android Market-ului, care permite vizualizarea unei schite pentru orice aplicatie dorita.
Noul sistem Android are un instrument ce permite cautarea de date de la diferite surse - de exemplu: o baza de date de contacte, marcajele unui browser web, etc.
Sistemul Android de asemenea aduce update-uri pentru camera web si aplicatiile video, a caror interfata - potrivit producatorului - functioneaza cu 39% mai rapid. In plus, Android 1.6 suporta conexiunea la retele VPN. Odata cu noul sistem, utilizatorii vor beneficia de imbunatatirile aduse monitorulului pentru baterie, care poate indica cuantumul de energie consumata de o anumita aplicatie.
Android 1.6 are la baza versiunea kernel-ului Linux 2.6.29.
II. Platforma Android 1.6
Platforma Android 1.6 introduce noi caracteristici atat pentru utilizatori cat si pentru programatori. In continuare va fi prezentata imaginea de ansamblu a noilor caracteristici si tehnologii, mai exact: noile trasaturi aferente utilizatorilor, actualizari aduse la Android Market, precum si noile tehnologii specifice platformei.
II.1 Noile trasaturi specifice pentru utilizatori
Caseta de cautare rapida pentru Android
Android 1.6 cuprinde un cadru de cautare reproiectat, care ofera pentru utilizatori un mod rapid si eficient de cautare in mai multe surse, direct de pe ecranul principal.
Sistemul "invata" ce rezultate, obtinute in urma unei cautari, sunt mai relevante, in functie de ce anume s-a accesat. Asadar, contactele si aplicatiile accesate mai des, vor apare ca prime optiuni, atunci cand utilizatorul tasteaza primele litere ale unei noi cautari (interogari).
De asemenea, cadrul de cautare ofera dezvoltatorilor posibilitatea de a expune cu usurinta continutul relevant de pe aplicatiile lor, direct in caseta rapida de cautare.
Figura 1. Caseta de cautare
Camera
foto, camera video si galeria de imagini
Noua interfata utilizator pune la dispozitie un aparat photo, o camera video si o galerie de imagini integrate. Utilizatorii pot comuta rapid intre aparatul photo si modul de captare video. In plus, galeria permite stergerea mai multor fotografii concomitent.
Android 1.6 ofera o camera video mult mai rapida, in comparatie cu versiunea precedenta. Astfel, operatia de lansare a camerei video este cu 39% mai rapida, existand si o imbunatatire cu 28% a timpului necesar intre realizarea de poze consecutive.
Figura 2. Noua interfa a a camerei video
Reteaua
virtuala privata (VPN), 802.1x
Indicatorul de utilizare al bateriei/acumulatorului
Un nou ecran de utilizare al bateriei permite utilizatorilor sa observe ce aplicatii sau servicii sunt consumatoare de energie din acumulator. Daca utilizatorul stabileste ca un anumit serviciu sau aplicatie foloseste prea multa energie, el poate lua masuri prin ajustarea setarilor, precum oprirea aplicatiei, sau chiar dezinstalarea acesteia.
Figura 3. Indicator de utilizare al bateriei
II.2 Actualizarile aduse Android
Market-ului
Pentru dispozitivele cu Android Market, cea mai recenta versiune imbunatateste in totalitate experienta utilizatorilor si face mai usoara descoperirea de catre acestia de diverse aplicatii si jocuri de la dezvoltatori.
Figura 4. Noua interfata Android Market
II.3 Noile tehnologii specifice platformei Android 1.6
Cadru extins de cautare
Cadrul de cautare Android a fost reproiectat si extins in scopul de a furniza aplicatiilor terte posibilitatea de a transmite continutul din aplicatia lor direct in Caseta de cautare rapida, instrumentul de cautare globala. Pentru a realiza acest lucru, dezvoltatorii vor trebui sa incorporeze in aplicatiile lor un formular de cautare si sa ofere totodata sugestii, cu privire la interogarile utilizatorilor. Pentru a putea dispune de sugestii in momentul efectuarii unei cautari, utilizatorii trebuie doar sa selecteze fiecare aplicatie de la care le-ar place sa primeasca sugestii, sub Elemente de cautare din Setari Cautare.
Functia "Text-catre-motor de vorbire" (Text-to-speech engine)
Android 1.6 dispune de un motor de sinteza de vorbire multilingv numit Pico. Acesta permite oricarei aplicatii Android sa "vorbeasca" un sir de cuvinte cu un accent care se potriveste cu limba. Motorul suporta urmatoarele limbi de vorbire: engleza (accent britanic sau american), franceza, italiana, germana si spaniola. Daca utilizati un dispozitiv T-Mobile G1 sau Dream, va trebui sa descarcati installer-ul Sintetizatorului de vorbire de la Android Market, care include "vocile" necesare pentru motorul text-to-speech.
"Actiuni" (Gestures)
Noul cadru de actiuni ofera dezvoltatorilor de aplicatii mediul propice pentru a crea, depozita, incarca si recunoaste gesturile si a le asocia cu actiuni specifice. Dezvoltatorii pot utiliza noul instrument GestureBuilder inclus in Android 1.6 SDK, pentru a genera librarii de gesturi necesare aplicatiilor lor.
Accesibilitate
Android 1.6 furnizeaza un nou cadru de accesibilitate. Cu ajutorul acestui cadru, programatorii pot dezvolta plugin-uri de accesibilitate care sa raspunda la datele introduse de utilizator; cum ar fi: crearea unui sunet cand o noua fereastra este prezentata, vibrare atunci cand se navigheaza in partea de sus a unei listei, oferirea de feedback.
Suport extins pentru densitatile si rezolutiile ecranului
Android 1.6 adauga suport ecran care permite aplicatiilor sa fie redate corespunzator in functie de diferite rezolutii sau densitati ale ecranului. Dezvoltatorii pot de asemenea specifica cu ce tipuri de ecrane sunt compatibile aplicatiile lor.
III. Avantajele oferite de sistemul de operare "Android"
Dezvoltarea aplicatiilor pentru sistemul de operare Android se bazeaza in intregime pe limbajul de programare Java si prezinta urmatoarele avantaje:
IV. Arhitectura sistemului
Sistemul este construit pe nucleul deschis al sistemului de operare Linux si utilizeaza o masina virtuala personalizata, intitulata "Dalvik Virtual Machine", care a fost construita pentru a optimiza memoria si resursele hardware intr-un mediu mobil. Desi este dezvoltat pe nucleul sistemului de operare Linux, sistemul nu este bazat pe o memorie de tip stiva, fiind destul de dificila reutilizarea bibliotecilor existente.
Arhitectura sistemului, prezentata in figura 5 include:
Figura 5. Arhitectura sistemului de operare Android
V. Componentele de baza ale unei aplicatii Android
Android are la baza concepte asemanatoare oricarei aplicatii de tip desktop ce se dezvolta in prezent, cu diferenta ca aceste concepte sunt "impachetate" oarecum diferit, cu scopul de a face telefoanele mobile mai rezistente la "prabusire"[2].
Activitatile. "Piatra de temelie" pentru dezvoltarea interfetei unei aplicatii de tip Android o constituie activitatea. Prin analogie, activitatea se aseamana cu fereastra unei aplicatii de tip desktop. Desi este posibil pentru activitati sa nu aiba o interfata, de cele mai multe ori codul sursa va fi "impachetat" sub forma unui serviciu sau furnizor de date.
Furnizori de continut. Furnizorii de continut ofera un nivel de abstractizare pentru orice tip de data depozitata pe dispozitivul mobil si este accesibila pentru aplicatii multiple. Modelul de dezvoltare Android incurajeaza utilizatorul sa faca propriile date disponibile si pentru alte aplicatii, mentinand in acelasi timp un control complet asupra modului in care datele dumneavoastra sunt accesate.
Intentii. Intentiile reprezinta mesaje ale sistemului, mesaje ce sunt transmise in interiorul dispozitivului Android, si al caror principal rol este acela de a "anunta" aplicatiile de eventimentele viitoare (de la schimbarea statusului hardware-ului - ex: card SD inserat -, date ce urmeaza sa fie primite - ex: sosirea unui mesaj SMS -, pana la evenimente specifice aplicatiilor). Nu numai ca se poate raspunde la aceste intentii, dar se pot crea si altele noi, pentru a lansa diferite aplicatii sau pentru a primi notificare atunci cand anumite situatii au loc.
Serviciile. Activitatile, furnizorii de continut si intetiile au termen de viata de scurta durata si ele pot fi oprite in orice moment. Serviciile, pe de alta parte, sunt programate sa ruleze continuu, iar la nevoie ele sunt dezvoltate independent de orice aplicatie.
Alte componente
Android vine cu o serie de caracteristici incorporate, cu scopul de a facilita dezvoltarea aplicatiilor.
Retea. Dispozitivele Android sunt, in general, "pregatite" pentru conexiunea la Internet, prin diferite mijloace de comunicare. Este permis accesul la Internet, indiferent de aplicatia care urmeaza sa fie dezvoltata.
Multimedia. Dispozitivele Android sunt capabile sa inregistreze fisiere audio sau video. Cu toate aceastea, de preferat este sa se studieze in detaliu capacitatile dispozitivului, pentru ca acestea pot varia de la o versiune la alta. Printre capacitatile multimedia incorporate se identifica: realizarea de fotografii, utilizarea microfonului pentru efectuarea de inregistrari, ascultarea fisierelor audio sau video, etc.
GPS. Toate dispozitivele Android au acces la furnizorii de locatii, precum GPS, care pot furniza aplicatiei informatii cu privire la locul exact unde se afla pe "fata pamantului" dispozitivul dumneavoastra. De exemplu, acest lucru este util in cazul in care v-a fost furat dispozitivul, deoarece puteti urmari miscarile si locatia exacta a acestuia.
Sercivii telefonice. Bineinteles, dispozitivele Android sunt telefoane mobile, fapt ce presupune efectuarea de apeluri telefonice, trimiterea si primirea de mesaje SMS, precum si orice alte operatii specifice tehnologiei actuale a telefoniei mobile.
VI. Dezvoltarea unei aplicatii Android folosind API-ul GoogleMaps
GoogleMaps reprezinta una din numeroasele aplicatii utilizate de platforma Android. Pentru dezvoltarea aplicatiei Android din cadrul acestei lucrari se apeleaza la instrumentul GoogleMaps si se urmareste atingerea urmatoarelor obiective:
VI.1 Crearea proiectului Android
In primul rand, se deschide mediul de lucru Eclipse si se creeaza un nou proiect Android (File/ New Android project). Denumiti proiectul "GoogleMaps".
La o privire mai atenta a fisierului AndroidManifest.xml generat la crearea aplicatiei, se observa faptul ca tag-ul <manifest> cuprinde, in mod obligatoriu, un namespace, precum si un pachet java specific aplicatiei. Aplicatia dezvoltata pe parcursul acestei lucrari contine o singura Activitate cu o clasa intitulata GoogleMaps.
Ori de cate ori este utilizat simbolul "@" in cadrul fisierului AndroidManifest.xml, se face referire la informatiile stocate intr-unul din fisierele de resurse. In acest caz, atributul eticheta (label) este obtinut de la resursa de tip string app_name, definita in alta parte a aplicatiei. Activitatea contine o singura definitie a tag-ului IntentFilter, acest tag fiind foarte des intalnit in aplicatiile de tip Android.
Actiunea android.intent.action.MAIN indica faptul ca acesta este punctul de intrare pentru aplicatie, in timp ce categoria android.intent.category.LAUNCHER plaseaza activitatea in fereastra de lansare. Este posibila existenta mai multor tag-uri Activity intr-un fisier AndroidManifest.xml, lucru ce ar determina vizibilitatea mai multor ferestre de lansare.
Pentru a putea integra GoogleMaps in aplicatia Android, trebuie modificat fisierul AndroidManifest.xml, prin adaugarea tag-ului <uses-library> si a permisiunii de conectare la Internet:
Se disting doua posibilitati de modificare a acestui fisier: prin utilizarea instrumentelor disponibile in Manifest editor, sau prin scrierea directa a liniilor de cod in AndroidManifest.xml. Codul sursa al acestui fisier modificat este prezentat in continuare:
VI.2 Modificarea interfetei aplicatiei
Urmatorul pas in dezvoltarea aplicatiei il presupune afisarea GoogleMaps pe dispozitiv.
Incepand cu versiunea Android sdk 1.0, este necesara cererea expresa a unei chei Api pentru a putea utiliza GoogleMaps in diversele aplicatii Android. Pentru a genera o astfel de cheie trebuie parcurse o serie de etape[3], prezentate pe scurt in continuare:
"C:Program FilesJava<JDK_version_number>bin";
keytool.exe -list -alias androiddebugkey -keystore 'C:androiddebug.keystore' storepass android -keypass android in CommandPrompt la adresa unde este localizat Keytool.exe pe calculator;
In cele ce urmeaza este prezentat codul sursa aferent fisierului main.xml, fisier situat in foderul res/layout. De remarcat ca in interioul tag-ului <com.google.android.Maps.MapView> s-a utilizat cheia Api obtinuta anterior.
In fisierul GoogleMaps.java, se extinde clasa GoogleMaps prin clasa de baza MapActivity, pentru a se putea integra harta Google in aplicatia Android (vezi codul sursa afisat in continuare). Metoda setContentView() permite crearea interfetei principale a aplicatiei, sub forma unui layout, definita in fisierul main.xml din directorul res/layout.
Figura 6 prezinta harta Google integrata in aplicatia Android dezvoltata.
Figura6. GoogleMaps integrat in aplicatia Android
VI.3 Afisare mod Zoom In / Zom Out
Dupa ce a fost integrat GoogleMaps pe dispozitivul virtual Android, harta din figura precedenta se poate "trage" in oricare parte se doreste, iar ecranul se updateaza instant cu noua locatie. Totusi, o problema importanta o constituie imposibilitatea de a mari sau micsora harta pe o anumita locatie, motiv pentru care, unul din obiectivele lucrarii este acela de a permite utilizatorilor efectuarea unor astfel de operatii.
In cadrul acestui paragraf, se vor prezenta pasii ce trebuie parcursi pentru ca utilizatorii sa poata efectua zoom in/zoom out asupra hartii integrate pe dispozitivele lor.
In primul rand, se adauga tag-ul <LinearLayout> in fisierul main.xml. Acest tag este necesar pentru a putea introduce cele doua controale zoom (in / out) in aplicatia GoogleMaps. Apoi, in fisierul GoogleMaps.java se importa urmatoarele biblioteci de clase necesare,
import com.google.android.maps.MapView.LayoutParams;
import android.view.View;
import android.widget.LinearLayout;
si totodata, se adauga dupa linia ce implementeaza interfata setContentView(R.layout.main) codul sursa prezentat mai jos:
Practic, s-a creat o instanta MapView, careia i-au fost atribuite controalele zoom si apoi corelate cu tag-ul <LinearLayout> adaugat anterior.
Figura 7. Aplicatia GoogleMaps cu instrumentul de zoom incorporat
In cazul de fata, s-a optat pentru ca instrumentul de zoom sa fie afisat in partea de jos a ecranului emulatorului - android:layout_alignParentBottom='true'. Dupa rularea aplicatiei, se poate observa aparitia controalelor marire/micsorare pe ecran, ori de cate ori este apasata harta (vezi figura 7).
VI.4 Vizualizarea GoogleMaps din diferite perspective
In mod implicit, GoogleMaps este afisat in mod "harta". Pentru a putea vizualiza harta din perspectiva unui satelit, se poate apela metoda setSatellite() a clasei MapView ca mai jos:
mapView.setSatellite(true);
De asemenea, se mai poate opta pentru afisarea hartii din perspectiva strazilor prin apelarea metodei setStreetView(), si anume:
mapView.setStreetView(true);
Figura 8 afiseaza modurile de vizualizare GoogleMaps din cele doua pespective: cea a satelitului, respectiv a strazilor.
Figura 8. Afisarea GoogleMaps din perspectivele: satelit si strazi
VI.5 Afisarea unei anumite locatii
In mod implicit, aplicatia GoogleMaps afiseaza harta Statelor Unite ale Americii, prima oara cand se incarca. Cu toate acestea, se poate seta programatic, ca aplicatia sa afiseze orice locatie se doreste. In acest caz, se utilizeaza metoda animateTo() a clasei MapController.
Pentru a se putea realiza aceasta operatie se va modifica codul sursa aferent clasei GoogleMaps, prezentat in continuare:
Figura 10. Adaugarea unui marcator pe harta
VI.7 Afisarea coordonatelor unui punct de pe harta
Un alt obiectiv urmarit pe parcursul dezvoltarii acestei aplicatii Android il reprezinta reperarea coordonatelor unei locatii (latitudine, longitudine) care sa corespunda cu zona atinsa pe ecran.
Acest lucru permite aflarea cu usurinta a unei locatii, proces ce poarta numele de Geocoding. Dupa ce s-a adaugat un overlay pe harta, se suprascrie metoda onTouchEvent() a clasei Overlay. Aceasta metoda se declanseaza ori de cate ori utilizatorul atinge harta. Metoda are doi parametrii - MotionEvent si MapView. Parametrul MotionEvent presupune determinarea momentului cand utilizatorul ridica degetul de pe ecran, apeland metoda getAction(). Conform codului sursa prezentat mai jos, daca utilizatorul a atins ecranul si apoi apor a ridicat degetul, se va afisa latitudinea si longitudinea locatiei atinse. Figura 11 afiseaza coordonatele unui punct de pe harta.
Figura 11. Afisarea coordonatelor unui punct de pe harta
Concluzii
Astfel, datorita facilitaților de portabilitate, a accesului nerestricționat la stiva de aplicații ale producatorului, proiectul Android ofera șansa oricarui utilizator de dispozitive mobile cu puține cunoștințe in domeniul programarii de a crea aplicații unice și inovative, iar prin intermediul Android Market-ului sa se livreze aceste aplicații la utilizatorii finali.
BIBLIOGRAFIE
John F. DiMarzio, Android -A programmers guide, Editura The McGrawHill Companies, 2008.
Reto Meier, Professional Android Application Development, EdituraWrox, 2008.
Mark Murphy, Beginning Android, Editura Apress, 2009.
Frank Ableson, Charlie Collins, Unlocking Android: A developer's guide, Editura Manning, 2009.
Chris Haseman, Android Essentials, Editura Apress, 2009.
Using Google Maps in Android - https://www.devx.com/wireless/Article/39145/0/page/3.
https://www.android.com/about/.
https://en.wikipedia.org/wiki/Google_Android
https://developer.android.com/sdk/android-1.6-highlights.html .
https://developer.android.com/guide/tutorials/views/index.html.
https://developer.android.com/reference/android/widget/Toast.html.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 3504
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved