Sunteți pe pagina 1din 7

Ionita Alexandru Referat Android

Sistemul de operare Android


Android este un stivă software pentru dispozitive mobile, care include un sistem de
operare, middleware şi aplicaţii cheie. Android este bazat pe o versiune modificată a kernel-
ului de Linux .

Arhitectura

1
Ionita Alexandru Referat Android

Caracteristici

 Cadru de aplicatii care să permită reutilizarea şi înlocuirea componentelor


 Maşina virtuală folosita este Dalvik optimizata pentru dispozitive mobile
 Browser-ul integrat bazat pe open-source WebKit motor
 Grafica optimizata bazata pe o bibliotecă grafica 2D personalizată; grafica 3D este
bazată pe OpenGL ES 1.0
 SQLite pentru stocarea datelor structurale
 Suport media pentru fisierele audio, video, şi imagini (MPEG4, H.264, MP3, AAC,
AMR, JPG, PNG, GIF)
 Telefonie GSM
 Bluetooth, EDGE, 3G si WiFi
 Aparat de fotografiat, GPS, busola, şi accelerometru
 Mediu bogat de dezvoltare, inclusiv un emulator de dispozitiv, instrumente pentru
depanare, profilare de memorie şi de performanţă, precum şi un plug-in pentru Eclipse
IDE

Managementul fisierelor
Incepand cu varianta 2.3 a sistemului de operare Android (Gingerbread), s-a trecut de
la sistemul de fisiere YAFFS la ext4.
Acest sitem de fisiere a fost dezvoltat pentru Linux, fiind succesorul sistemului ext3.

Ext4
Dezvoltator Mingming Cao, Andreas Dilger, Alex Zhuravlev (Tomas), Dave
Kleikamp, Theodore Ts'o, Eric Sandeen, Sam Naghshineh, others
Nume complet Fourth extended file system (al patrulea sistem de fisiere extrins)
Introdus Stable: 21 October 2008
Identificatorul 0x83 (MBR) EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 (GPT)
partitiei
Structura
Continutul Linked list, hashed B-tree
directoarelor
Alocarea fisierelor Extents/Bitmap
Blocuri Bad Tabel
Limite
Dimensiunea maxima 16 TB 
a fisierului
Numarul maxim de 4 billion
fisiere
Lungimea maxima a 256 bytes
fisierului
Dimensiunea maxima 1 EB
a volumului
Caracterele permise Toate cu esceptia a NULL ('\0') si '/'
in numele fisierelor
Caracteristici

2
Ionita Alexandru Referat Android

Date inregistrate modificare (mtime), atribute de modificare (ctime), de acces (atime),


de sters (dtime), de creare (crtime)
Intervalul de date 14 December 1901 - 25 April 2514
Rezolutia datei Nanosecond
Forks Nu
Atribute extents, noextents, mballoc, nomballoc, delalloc, nodelalloc,
data=journal, data=ordered, data=writeback, commit=nrsec, orlov,
oldalloc, user_xattr, nouser_xattr, acl, noacl, bsddf, minixdf, bh,
nobh, journal_dev
Permisii POSIX
Compresie Nu
transparenta
Criptare transparenta Nu
Deduplicarea datelor Nu
Sistemele de operare Linux
suportate

Acest sistem de fisiere suporta volume cu dimensiuni de pana la 1 exabyte si fisiere de


pana la 16 terrabytes. Acesta a inlocuit schema clasica de mapare a blocurilor utiliata de
versiunile anterioare ext2/3, folosind blocuri fizice continue, numite extent-uri, imbunatatind
performantele manipulariii fisierelor de mari dimensiuni si reducand fragmentarea. Un singur
astfel de bloc poate mapa pana la 128MB de spatiu continuu cu nblocuri de 4 KB. Cand un
fisier are mai mult de patru extent-uri acestea sunt indexate intr-un Htree.
Sistemul de fisiere ext4 este compatinbil cu ext2/3, adica este posibila montarea
acestoara ca si ext4. Performatele vor fi usor imbunatatite, datorita anumitor caracteristici ale
ext4 cum ar fi noul algoritm de alocare a blocurilor. Este posibila si prealocareape disc a
patiului pentru un fisier. Metoda actuala a majoritatiii sistemelor de fisiere este de a salva un
fisier cu numele fisierului pentru care este prealocat spatiul si in acesta este scrisa valoarea
„0” pana atinge dimensiunea ceruta. Ext4 foloseste o noua comanda fallocate(), care aloca
un spatiu continuuu, astefel imbuantateste performatele fisierelor video si a bazelor de date.
Limita numarului de subdirectoare, pentru ext4 a crescut la 64000, fata de
predecesorul lui pentru care era de 32000, iar pentru a imbunatii performantele si
dimensiunile directoarelor, acestea sunt indexate in H-tree (hashed B-tree, versiune
modificate de b-tree).
Acesta utilizeaza o tehnica de sporire a performantei, numita alocare intarziata, si
reprezinta intarzierea alocarii spatiului pe disc pana cand datele sunt pregatite pentru a fi
scrise pe disc. Aceasta tehnica reduce fragmentarea, deoarece deciziile de alocare a blocurilor
se bazeaza pe dimensiunea reala a fisierului. Pentru imbunatatirea fiabilitatii, ext4 utilizeaza
metoda checksum asupra tabelului de indexare, deoarece acesta este cel mai utilizat fisier al
sistemului. In imaginea de mai jos este ilustrata functionarea acestei metode:

3
Ionita Alexandru Referat Android

Asa cum este ilustrat in graficul de mai jos, verificarea sistemului de fisiere pentru
ext4 este mult mai rapida decat predecesorul lui, ext3, asta datorita faptului ca grupurile de
blocuri si sectiuni nealocate din tabelul de indexare sunt marcate ca atare, astfel functia de
verificare le omite, reducand considerabil tipul de verificare a sistemului de fisiere,

Managementul proceselor
Atunci când prima dintre componentele unei aplicaţii trebuie să fi rulata, Android
începe un proces de Linux pentru aceasta cu un singur fir de execuţie. În mod implicit, toate
componentele aplicaţiei ruleza în acest proces şi fir.

Procese
Procesul în cazul în care o componentă se execută este controlată de fişierul
manifest. Elementele componentei
- activitate , 
- serviciu ,
- receptor , şi 
- furnizor, 

4
Ionita Alexandru Referat Android

au fiecare un process atribut care poate specifica un proces în cazul în care această


componentă ar trebui să ruleze. Aceste atribute pot fi stabilite astfel încât fiecare componentă
se execută în propriul proces, sau astfel încât unele componentele sa imparta un proces în
timp ce altele nu. Acestea pot fi de asemenea setat astfel încât componentele diferitelor
aplicaţii pot rula în cadrul aceluiaşi proces - cu condiţia ca cererile sa aiba acelaşi ID-ul de
utilizator Linux şi sa fie semnate de către aceleaşi autorităţi. Fiecare aplicatie are de
asemenea un process atribut, pentru a stabili o valoare implicită care se aplică la toate
componentele.
Sitemul de operare Android poate decide să închidă un proces la un moment dat,
atunci când memoria este scăzuta şi este solicitat de alte procese care servesc imediat
utilizatorul. Componentele aplicaţiei care rulează în acest proces, sunt distruse. Un proces
este repornit pentru acele componente atunci sunt utilizate.

Fire de proces
Deoarece interfaţa cu utilizatorul trebuie să fie întotdeauna rapidă pentru a răspunde la
acţiunile utilizatorului, firul care găzduieşte o activitate nu ar trebui gazduiasca, de asemenea,
operaţiunile de consumatoare de timp.Orice lucru care nu pot fi realizate rapid este atribuit
unui fir diferit.

.
Apelul procedurilor la distanţă

Android are un mecanism uşor pentru apelurile de procedură la distanţă (RPCs) - în


cazul în care o metodă se numeşte la nivel local, dar este executată la distanţă (într-un alt
proces), cu orice rezultat întors înapoi la apelantului. Acest lucru presupune descompunerea
apelul metodei şi toate datele sale inerente la un nivel la care sistemul de operare poate
înţelege, si transmite de la procesul de la nivelul şi spatiu de adrese local la procesul şi spaţiul
de adrese de la distanţă. Valorile returnate sunt transmise în direcţia opusă. 
O interfaţă RPC pot include numai metode. În mod implicit, toate metodele sunt
executate sincron, chiar dacă nu există nici o valoare de întoarcere.

Componenta ciclurile de viaţă

Componentele aplicaţiei au un ciclu de viaţă - un început atunci când Android le


instanţiază să răspundă până la capăt atunci când instanţele sunt distruse. Între, ele pot
fi,uneori, active sau inactive, sau, în cazul activităţilor, vizibilă pentru utilizator sau
invizibila. 
Activitatea ciclului de viaţă

O activitate are, în esenţă, trei stări:

 Este activă sau executată atunci când este în prim planul ecranului (în partea de sus a


stivei de activităţi pentru sarcina curentă). Aceasta este activitatea care se concentreze
pentru acţiunile utilizatorului.

 Acesta este întreruptă, dar este încă vizibil pentru utilizator.O activitate intrerupta este
completa (menţine toate informaţiile de stare şi ale membrului şi rămâne ataşata

5
Ionita Alexandru Referat Android

managerului de ferestre), dar poate fi ucisa de către sistem in situatii extreme de


memorie redusa.

 Este oprită în cazul în care este complet acoperită de către o altă activitate. Acesta îşi
păstrează încă toate informaţiile de stare şi membru. Cu toate acestea, ea nu mai este
vizibila pentru utilizator, astfel fereastra sa este ascunsa şi va fi de multe ori ucisa de
sistem atunci când este nevoie de memoria in altă parte.

Procese şi ciclurile de viaţă

Sistemul Android încearcă să menţină procesul unei aplicatii pentru cat mai mult
posibil, dar în cele din urmă vechile procese trebuiesc eliminate atunci cand memoria este
scăzuta. Pentru a determina care procese trebuiesc să păstrate şi care ucise, Androidul acorda
locuri pentru fiecare proces într-o "ierarhie de importanţă", bazata pe componentele ce
funcţioneaza în ea şi starea acestor componente. Procese cu cea mai mica importanţa sunt
eliminate în primul rând, apoi următoarele cu cel mai mica, şi aşa mai departe. Există cinci
niveluri în ierarhie. Lista de mai jos le prezintă în ordinea importanţei:

1. Un proces de prim-plan este unul care este necesar pentru ceea ce utilizatorul face în
prezent. Un proces este considerat a fi în prim-plan dacă indeplineste oricare dintre
următoarele condiţii:
o Acesta se execută o activitate cu care utilizatorul interacţionează.
o Acesta găzduieşte un serviciu care este legat de activitatea cu care utilizatorul
interacţionează.
o Detine un  obiect de tip Service care executa unul dintre Callbacks-urile
ciclului său de viaţă
o Detine un obiect de tip BroadcastReceiver  care executa metoda de receptie.
Doar câteva procese de prim-plan pot exista la un moment dat. Ele sunt ucise numai
in ultimă instanţă - în cazul în care memoria este atât de mică încât să nu poate
continua să le ruleze toate. În general, în acel moment, dispozitivul a atins o stare de
paginare a memoriei, astfel încât uciderea unor procese de prim-plan este necesară
pentru a păstra interfaţă pentru utilizator receptivă.

2. Un proces vizibil este unul care nu are toate componentele in prim-plan, dar încă mai
pot afecta ceea ce utilizatorul vede pe ecran. Un proces este considerat a fi vizibil
dacă oricare dintre următoarele condiţii sunt indeplinite:
o Acesta găzduieşte o activitate care nu se află în prim-plan, dar este încă
vizibila pentru utilizator.
o Acesta găzduieşte un serviciu de care este legat la o activitate vizibilă.
Un proces vizibil este considerat important şi nu va fi ucis excepţia cazului în care
acest lucru este necesar pentru a păstra toate procesele care rulează in prim-plan.

3. Un proces de servicii este unul care execută un serviciu care nu se încadrează în una


dintre cele două categorii mai mari. Deşi procesele de servicii nu sunt direct legate de
orice interfata cu utilizatorul, ele fac, în general, lucruri de care utilizatorului ii pasa,
astfel încât sistemul le menţine, cu excepţia cazului în care nu este de ajunsa memorie
pentru a le menţine, împreună cu toate procesele de prim-plan şi vizibile.

4. Un proces de fundal este unul care deţine o activitate care nu este în prezent vizibila
pentru utilizator. Aceste procese nu au un impact direct asupra experienţei

6
Ionita Alexandru Referat Android

utilizatorului, si poate fi ucis în orice moment pentru a recupera memorie pentru un


proces de prim-plan, vizibil, sau de serviciu. De obicei, există mai multe procese care
rulează in fundal, astfel încât acestea sunt ţinute într-o lista LRU (Least Recently
Used = cel mai puţin recent folosit) pentru a se asigura că procesul cu activitatea cea
mai recent vazuta de catre utilizator este ultimul care urmează să fie ucis. 

5. Un proces gol este unul care nu deţine componentele active ale unei


aplicaţie. Singurul motiv pentru a menţine un astfel de proces este pentru a îmbunătăţi
timpul de pornire data viitoare cand o componentă are nevoie pentru a rula în
el. Sistemul ucide adesea aceste procese, în scopul de a echilibra resursele generale
ale sistemului de cache între proces şi cache care stau la baza kernel-ului.

Android plaseaza un proces la cel mai înalt nivel care este posibil, pe baza importanţei
componentelor active în prezent în proces. De exemplu, dacă un proces găzduieşte un
serviciu şi o activitate vizibilă, procesul va fi cotat ca fiind un proces vizibil, nu ca proces de
serviciu.
În plus, clasamentul unui proces poate fi crescut, deoarece alte procese sunt
dependente de el. Un proces care serveşte unui alt proces nu poate fi clasat mai jos decât
procesul servit. 

Deoarece un proces care rulează un serviciu este clasat mai sus decât unul cu
activităţi de fundal, o activitate care iniţiază o operaţiune de lungă durată ar putea face bine să
înceapă un serviciu pentru această operaţiune, mai degrabă decât pur şi simplu sa ruleze un fir
- în special în cazul în care operaţiunea va dura probabil mai mult decât activitatea. Folosind
un serviciu garantează că operaţiunea va avea cel puţin prioritat de "procesul de serviciu",
indiferent de ceea ce se întâmplă cu activitatea.

Bibliografie
- http://en.wikipedia.org/wiki/Ext4

- http://www.android.com/about/

- http://en.wikipedia.org/wiki/Android_(operating_system)

- http://en.wikipedia.org/wiki/Checksum

S-ar putea să vă placă și