Android este singurul sistem de operare mobil creat de Google, iar mai tarziu de consorțiul [611741]

Android este singurul sistem de operare mobil creat de Google, iar mai tarziu de consorțiul
comercial Open Handse t Alliance și reprezintă o platformă software pentru telefoane mobile și
dispo zitive bazate pe nucleu Linux. Acesta permite dezvoltatorilor să scrie cod în limbaj Java.
Aplicațiile pot fi scrise și în C sau alte limbaje de programare dar acest mod de de zvoltare nu este
susținut oficial de Google.
Platforma Android a fost lansată la 5 noiembrie 2007 prin anunțarea fondării unui consorțiu
de 48 de companii de hardware, software și de telecomunicații numit Open Handset Alliance
(OHA), incluzând companii c a Google, HTC, Intel, Motorola, Qualcom, T -Mobile, Sprint Nextel și

La 9 decembrie 2008, 14 noi membri au aderat la proiectul Android printre care Sony
Ericsson, Vodafone Group, Asustek Computer Inc, Toshiba Corp și Garmin Ltd.
Din data de 21 o ctombrie 2008, Android a fost disponibil ca Open Source astfel că Google
a deschis întregul cod sursă sub licența Apache. Sub această licență producătorii sunt liberi să
adauge extensii proprietare, fără a le face disponibile comunității open source, în ti mp ce
contribuțiile Google la această platformă rămân open source.
Platforma Android a fost construită pentru a permite dezvoltatorilor să creeze aplicații
mobile care să utilizeze toate resursele pe care un telefon le are de oferit. A fost construit pentru a fi
cu adevărat deschis. O aplicație poate apela oricare dintre funcționalitățile de bază ale telefonului,
cum ar fi efectuarea de apeluri, trimiterea de mesaje text sau folosirea aparatului de fotografiat.
Android -ul nu face diferența între aplica țiile de bază ale telefonului și cele create de dezvoltatori.
Ele pot fi construite să aibă acces egal la capacitățile telefonului pentru a oferi utilizatorilor un
spectru larg de aplicații și servicii. Fiind o platformă open source, aceasta va evolua con tinuu pri n
încorporarea tehnologiilor de ultimă generație.

 Android este un produs open source, distribuit sub lice nța Apache.

făcută publică și distribuită gratuit.
 Portabilitate.
Programele sunt scrise în Java și executate pe mașina virtuală Dalvik permițând astfel portarea pe
ARM, x86 și alte arhitecturi. Mașina virtuală Dalvik reprezintă o implementare specializată de
mașină virtuală concepută pen tru utilizarea în dispozitivele mobile, desi nu este o mașină virtuală
Java standard.
 Oferă suport pentru grafică 2D și 3D. Platforma este adaptabilă la cofigurații mai mari,
biblioteci grafice 2D, biblioteci grafice 3D și configurații tradiționale pentru telefoane mobile. Nvidia.
Această licență este destul de permisiv ă și oferă libertatea de a copia, distribui și de a modifica in
mod liber surse existente f ără nici un cost de licen țiere, rămânând la alegerea dezvoltatorilor de a
distribui sursele modificate. Singura e xcepție de la aceast ă regulă o constituie nucleul Linux
care se afl ă sub licență GPL versiunea 2 ce prevede c ă orice modificare a surselor trebuie s ă fie
Platforma Android permite rularea aplica țiilor pe o gam ă largă de dispozitive. 2. Caracteristici Android
Platformă open source. 1. Introducere în Android

 Împărțirea pe sarcini(task). Aplicațiile Android sunt alcătuite din diferite componente ce pot
fi reutilizate și de alte aplicații. Refolosirea de alte componente pentru a ajunge la rezultatul final
este cunoscută sub numele de sarcină( task) in Android.
 Posibilitatea de a stoca date sub forma unor baze de date SQLite.
 Conectivitate. Platforma Android suportă o gamă largă de tehnologii de conectivitate
precum GSM, CDMA, UMTS, Bluetooth, Wi -Fi.
 Suport media audio/video/imagine: MPEG -4, H.2 64, MP3, AAC, AMR, JPEG, PNG, GIF.
Dezvoltatorii au la dispoziție o serie de unelte pentru dezvoltarea aplicațiilor precum

Fiecare versiune de Android lansată (nivel API) aduce îmbunătățiri componentelor existente

 Nucleu Linux (Linux Kernel)
 Librării de bază
 Android RUNTIME
 Aplicații Framework
 Aplicații

emulator, unelte de depanare(debugging).
precum si func ționalități noi care sa eficientizeze utilizarea resurselor fizice ale dispozitivelor.
3. Arhitectura sistemului Android
Sistemul Android dispune de o arhitectur ă alcatuită din 5 niveluri ce comunica intre ele:
Fig. 3.1 Arhitectura sistemului Android

Primul nivel al ar hitecturii sistemului Android îl constituie Nucleul Linux. Acesta se află la
baza arhitecturii și asigură funcționalitățile de bază ale sistemului precum gestionarea memoriei,
gestionarea proceselor, rețelelor, a sistemului de fișiere și a driverelor (driver pentru afișaj, cameră,

Al doilea nivel reprezintă bibliotecile de bază (native) Android și constă dintr -un set de
librării C/C++ ce stau la baza funcționării sistemului. Printre a cestea se numără bibliot ecile
responsabile de stocarea ș i gestionarea bazelor de date (SQLite), biblioteci ce oferă suport pentru
formate audio si video (Media Framework), etc.

Android Runtime con ține m așina virtuală Dalvik si bibliotecile Java. Mașina Virtuală
Dalvik este o componentă principală a acestui nivel ce permite rularea fiecărei aplicații într -un
proces propriu.

memorie Flash, etc).3.1 Nucleul Linux (Linux Kernel)
Fig. 3.2 Nucleul Linux
3.2 Librăriile de baz ă
Fig. 3.3 Libr ării de baz ă
3.3 Android Runtime
Fig.3.4 Android Runtime

Nivelul de aplicații Framewo rk este cel cu care lucrează direct programatorul, oferind
dezvoltatorilor toate funcționalitătile și resursele oferite de sistem. Acest nivel este preinstalat în
Android și este organizat pe componente pentru a putea extinde și crea noi componente.
Cele mai importante componente sunt:
 Gestiunea activității (Activity Manager): coordonează și controlează ciclul de viață al
aplicațiilor .
 Providerul de conți nut (Content Provider): este întâ lnit doar la arhitectura Android și oferă
posibilitatea de a accesa d ate din alte aplicații.

Nivelul Aplicaț ii reprezintă ultimul nivel din arhitectura sistemului Android și cuprinde
toate aplicațiile ce folosesc interfața cu utilizatorul precum contacte, telefon, Brows er, etc.
Fiecare aplicație rulează într -un proces propriu, oferind astfel securitate maximă și protecție
între aplicații în cazul în care o aplicație se blochează.

O aplicați e Android este o unitate instalabilă care poate fi pornită și utilizată independent de
alte aplicații. Aceasta poate avea o singură clasă care este instanțiată de îndată ce este pornită
aplicația și este ultima componentă care este executată la oprirea apl icației.
O aplicație Android este formată din componente software și fișiere de resurse.
Componentele unei aplicații Android pot accesa componentele unei alte aplicații pe baza unei
descrieri de sarcină (Intent). Astfel se pot crea sarcini executate între aplicații. Integrarea acestor
componente se poate face astfel încât aplicația să ruleze impecabil chiar dacă componentele
suplimentare nu sunt instalate sau există componente diferite care îndeplinesc aceeași sarcină.
Componentele de bază care sunt folosi te pentru construirea unei aplicații sunt:
 Activită ți (Activity)
Componentele de tip Activity sunt componente responsabile de prezentarea unei
interfețe grafice utilizatorului, înregistrarea și procesarea comenzilor utilizatorului. O aplicație poate
avea mai multe componente de tip Actitity, una dintre ele fiind considerată activitate principală.
3.4 Aplica ții Framework
Fig. 3.5 Aplica ții Framework
3.5 Nivel Aplica ții
Fig. 3.6 Nivel Aplica ții
4. Elementele componente ale unei aplica ții Android

Fiecare obiect de tip Activity are un ciclu de viață care descrie starea în care se află
activitatea la un moment dat:
-stare activă (Running). Activ itatea este afișată pe ecranul telefonului, utilizatorul
interacționează direct cu activitatea prin intermediul interfeței dispozitivului.
-stare de așteptare (Paused). Activitatea nu se mai află în prim plan, utilizatorul nu mai
interacționează cu aplic ația.
-starea de întrerupere (Stopped). Activitatea nu mai este utilizată ș i nici nu mai este vizibilă.
Pentru a putea fi reactivată, activitatea trebuie să fie repornită.
-starea de distrugere (Destroyed). Activitatea este distrusă și memoria este elibe rată
deoarece nu mai este necesară.

O singură activitate poate fi afișată în prim -plan la un moment dat. Sistemul este cel care
gestionează stările și tranzițiile. Acesta va anunța când se modifică starea activității curente sau este
Pentru evenimentele de tip tranziție sunt apelate următoarele metode:
-onCreate(Bundle) – este apelată atunci când activitatea este creată. Folosirea argumentului
Bundle oferă posibilitatea de a restab ili starea salvată într -o sesiune anterioară.
-onStart() – metoda este apelată atunci când activitatea urmează să fie afișată în prim -plan.
-onResume() – este apelată atunci când activitatea este vizibilă, utilizatorul poate
interacționa cu aceasta.
-onRes tart() – este apelată atunci când activitatea revine în prim -plan dintr -o stare oprită.
-onPause() – metoda este apelată atunci când o altă activitate este adusă în prim -plan,
activitatea curentă fiind mutată în fundal.
-onStop() – metoda este apelată atun ci când activitatea nu mai este utilizată, utilizatorul
interacționând cu altă activitate.
lansată o altă aplicație.Fig. 4.1 Ciclul de via ță al unei activita ți

-onDestroy() – apelată atunci când activitatea este distrusă, memoria este eliberată.
-onRestoreInstanceState(Bundle) – apelată în cazul în care activitatea este ini țializată cu
datele dintr -o stare anterioară.
-onSaveInstanceState(Bundle) – metoda este apelată pentru a salva starea curentă a
activității.
 Intent
Obiectele de tip Intent sunt mesaje asincrone care permit aplicațiilor să solicite
funcționalități de la alte componente Android. Cu ajutorul obiectelor de tip Intent, este posibilă
comunicarea în timpul rulării cu diverse componente aflate fie în interiorul aplicației, fie localizate
în alte aplicații. Printre componentele ce pot fi apelate prin intermediul obiectelor de tip Intent se
numără servicii, activități etc.
O activitate poate apela direct o componentă (Intent explicit) sau poate cere sistemului să
evalueze componentele înregistrate pe baza datelor din Intent (Intent implicit).

 Servicii
O componen tă de tip Service este o componentă care se execută în fundal, fără interacțiune
directă cu utilizatorul și al cărei ciclu de viață este independent de cel al altor componente. Odată
pornit, serviciul respectiv își execută în mod implicit în cadrul firului de execuție principal sarcinile
pe care le are de făcut chiar dacă componenta care l -a pornit inițial este distrusă. Seviciul este
folosit atunci când aplicația are de efectuat o operație de lungă durată care nu interacționează cu
utilizatorul sau pentru a furniza funcționalități pentru alte aplicații.

 Furnizorul de conținut (Content Provider)
O componentă de tip Content Provider este un obiect din cadrul unei aplicații care oferă o
interfață structurată la datele aplicației. Cu ajutorul acesteia aplicaț ia poate partaja date cu alte
aplicații. [3] Sistemul Android conține o bază de date SQLite în care se pot stoca datele care vor fi
accesate cu ajutorul componentelor Content Provider. Datele partajate pot fi imagini, fișiere text,
video, audio.

 Receptori de anunțuri (Broadcast Receivers)
Un obiect de tip receptor de anunțuri este o componentă Android care preia mesaje de tip
broadcast. Aceste mesaje pot fi transmise fie de alte aplicații pentru a anunța finalizarea/începerea
unei operații, fie de sistem pen tru a anunța modificarea parametrilor sistemului (baterie, memorie,
semanl, etc .). Mesajele de broadcast sunt de obicei obiecte de tip Intent.
Există două mari clase de mesaje ce pot fi recepționate:
-Mesaje normale (trimise cu context.sendBroadca st). Acestea sunt complet asincrone și
sunt transmise într -o ordine aleatoare, de multe ori în același timp. Acest lucru este mai eficient dar
rezultatele nu pot fi folosite de receptoare.
-Mesaje comandate (trasnmise cu Context.sendOrderedBroadcast ). Acestea sunt livrate
pe rând la un receptor. Pe măsură ce receptorul execută codul, rezultatul poate fi propagat la
receptorul următor sau se poate renunța complet la Broadcast și astfel rezultatul nu poate fi
transmis către alt receptor. Ordinea în ca re sunt transmise este controlată de un atribut numit
prioritate (android:priority atribute). Receptoarele cu aceeași prioritate vor fi rulate într -o ordine
arbitrară.
 Fragment
Un fragment reprezintă un comportament sau o porțiune de interfață cu utilizato rul din
cadrul unei activități. Se pot combina mai multe fragmente într -o singură activitate pentru a construi
o interfață multi -panou sau se poate reutiliza un fragment în mai multe activități.

Imaginea următoare arată o astfel de implementare. Pe un ecr an mai mic arată doar un
fragm ent și permite utilizatorului să navigheze printr -un alt fragment.

Pe un ecran mai la t sunt afișate imediat cele două fragmente.

Obie ctele de tip fr agment au propiul ciclu de viață . Un fragment trebuie să fie întotdeauna
încorporat într -o activitate, ciclul de viață al fragmentului fiind afectat în mod direct de ciclul de
viață al activității gazdă. De exemplu, dacă activitatea este înt reruptă atunci și fragmentele incluse
în aceasta sunt întrerupte. Ciclul de viață al fragmentului diferă de cel al activității atunci cand
activitatea se rulează, fiecare fragment putând fi manipulat independent (adăugare, eliminare,
modificare de fragment , etc.).
Ca și structură , componenta de tip fragment este foarte similară cu cea de tip Activity, în
cadrul lor regăsindu -se pe lângă metode specifice și metodele onCreate(Bundle), onStart(),
onResume(), etc.
 Fisierul Manifest
Fiecare aplicație trebuie să aibă un fișier AndroidManifest.xml în directorul principal. Acest
fișier conține informații referitoare la toate componentele, permisiile, seviciile și lib răriile utilizate
în aplicație.

Fig. 4.2 Interfa ță fragmentat ă pe ecran mic
Fig. 4.2 Interfa ță fragmentat ă pe ecran lat

Imaginea de mai jos prezin tă structura generală a unui fiș ier manifest.

O permisiune reprezintă o restricție care limitează accesul la date sau la o parte din cod
pentru a proteja datele confidențiale ale utilizatorului. Fiecare permisiune este identificată printr -o
etichetă unică. De m ulte ori eticheta indică acțiunea care este limitată.
 Procese și fire de execuție
La pornirea unei aplicații se crează automat un proces Linux cu un singur fir de execuție
numit fir principal de execuție (main thread). În cadrul acestui proces sun t execu tate toate
componentele ș i instrucțiunile asociate acestora. În cazul în care o componentă este pornită când
există deja un proces principal atunci componenta va rula în procesul deja existent. În cazul în care
aplicația are de efectuat o operație de lungă durată sau o operație care ar afecta performanțele
acesteia s e asociază un nou proces care să îndeplinească respectivul set de instrucțiuni, creând astfel
fire suplimentare de execuție pentru orice proces.
Procesele sunt executate pe o perioadă mai lungă de timp, ele fiind oprite atunci când
sistemul are nevoie de memorie sau are de executat procese cu o prioritate mai mare. Pentru a
determina ce proces trebuie oprit, sistemul organizează toate procesele în funcție de importanță.

 Resurse Android
O apli cație Android este alcătuită din fișiere ce conțin codul sursă și fișiere cu resurse.
Resursele sunt separate de codul sursă și reprezintă o colecție de fișiere video, audio, imagini, text
folosite pentru a crea o interfață vizuală cât mai bogată. Accesar ea acestora se face prin intermediul
codului sursă. Separarea resurselor permite dezvoltatorului să creeze interfețe adaptate la diferitele
configurații de dispozitive.

Fig. 4.3 Fi șierul Manifest

Similar Posts