Android Architectură: Straturi de aplicație, cadru, componentă
Android Lansarea inițială a sistemului de operare a fost în anul 2008. Chiar și la început, echipa din spatele sistemului de operare l-a construit pe umerii giganților. Dincolo de interfața cu utilizatorul pe care Android OS se prezintă la nivel de suprafață, este alcătuit din mai multe straturi. Aceste straturi includ cod personalizat și tehnologii open-source care au fost în continuă dezvoltare de zeci de ani.
Android a fost dezvoltat prin eforturi masive de colaborare și investiții ale multor companii. Principala companie din spatele dezvoltării Android este Google. Alte companii includ producători de dispozitive precum Samsung, LG; producători de procesoare precum Intel și ARM, dar pentru a numi câteva.
Când vorbim Android arhitectura, ne referim la modul în care Android sistemul a fost proiectat, segmentat în straturi și construit pentru a funcționa ca un sistem. Construirea unui sistem atât de complex necesită o structurare atentă pentru a se asigura că toate componentele lucrează împreună în mod coeziv. Arhitectura sa asigură că numeroasele componente funcționează ca un întreg, fără a se prăbuși.
Straturi
Următoarele sunt straturile care compun Android arhitectura așa cum este etichetată pe diagramă:
- Aplicatii
- Cadrul de aplicare
- Android Runtime și biblioteci de bază
- Linux Kernel
Dezvoltarea unui sistem de operare pentru dispozitive mobile vine cu o serie de provocări. Utilizarea acestei arhitecturi stratificate asigură că diferite probleme sunt defalcate și rezolvate la diferite niveluri.
O arhitectură stratificată ajută la separarea preocupărilor și se asigură că dezvoltatorii de software Android nu trebuie să se confrunte cu probleme de nivel scăzut la fiecare pas. În schimb, aceștia se pot concentra pe furnizarea de valoare comercială în legătură cu nivelul la care lucrează.
Dezvoltatorii lucrează pentru ca aplicațiile să nu fie nevoite să-și facă griji cu privire la implementarea cadrului aplicației. Această muncă este lăsată pentru dezvoltatorii de sistem care lucrează la cadrul de aplicație.
Dezvoltatorii Application Framework lucrează la experiența dezvoltatorului și nu trebuie să-și facă griji cu privire la driverele de nivel scăzut. Inginerii de sistem de nivel scăzut se pot concentra complet pe componente de nivel scăzut, cum ar fi driverele Bluetooth sau audio și altele asemenea.
AndroidStructura stratificată a lui face posibilă aplicarea de actualizări cu remedieri de erori sau îmbunătățiri pentru fiecare strat pe cont propriu. Acest lucru asigură că modificările dintre straturi nu interferează unele cu altele. Acest lucru face posibil ca oamenii care lucrează la un nivel diferit al sistemului de operare să se obstrucționeze reciproc pe măsură ce se fac noi actualizări și lansări.
Android Aplicatii
Acesta este stratul cu care interacționează utilizatorii finali. Este pe acest nivel în care dezvoltatorii de aplicații își publică aplicațiile pentru a rula.
Android, în mod implicit, vine cu un set de aplicații care fac dispozitivele Android utilizabile din offset.
- Acasă: Pagina de pornire pe Android constă din pictograme de lansare pentru aplicațiile utilizate în mod obișnuit la care utilizatorul final ar putea dori acces rapid. Puteți porni aplicațiile făcând clic pe lansatoarele acestor aplicații. În partea de sus a ecranului, aveți widget-uri care arată rețeaua, nivelul bateriei, data și ora.
- Contacte: Android, în mod implicit, oferă un mijloc de stocare și de preluare a contactelor. Informațiile de contact sunt partajate în alte aplicații pentru a îmbunătăți funcționalitatea.
- Mesaje: Android oferă capacitatea de a trimite și primi mesaje SMS.
- E-mail: Android vine cu suport nativ pentru serviciile de e-mail. Infiintarea unui Android dispozitivul necesită un cont Gmail. Configurarea Gmail activează alte componente dependente de e-mail Android dispozitive. Unele caracteristici dependente de e-mail includ mecanisme de securitate și de recuperare. O altă caracteristică dependentă de e-mail este accesul la Play Store, o piață pentru Android aplicatii.
- Browser: Android vine cu un browser implicit.
- Sertarul de notificare: Glisând în jos pe ecran expune sertarul de notificări. Oferă evenimente de aplicație de care utilizatorul ar trebui să fie conștient. Deasupra notificării se află un set de comenzi rapide către unele setări ale dispozitivului utilizate în mod obișnuit, pe care utilizatorii le pot comuta. Aceste setări includ comutatoare de pornire și dezactivare pentru diferite componente hardware, cum ar fi Bluetooth și Wifi. Apăsarea lungă a acestor evenimente ne permite să navigăm la pagina lor de configurare.
Acest strat este, de asemenea, denumit la nivel de utilizator, spre deosebire de straturile de mai jos, care sunt în mare parte reglate pentru dezvoltarea aplicațiilor. Dezvoltatorii de aplicații creează și personalizează experiențele pentru aplicațiile lor pe acest strat. Straturile de sub nivelul aplicației nu sunt personalizate de dezvoltatorii de aplicații. Sunt considerate parte a stratului de sistem. Aceste straturi sunt personalizate de către producătorii de dispozitive, echipele Google Android sau terțe părți care doresc să folosească Android codul sursă pentru produsul sau cercetarea lor.
Cadrul de aplicare
Android OS expune bibliotecile și caracteristicile de bază ale Android dispozitiv care utilizează a Java API. Acesta este ceea ce este cunoscut sub numele de Android cadru. Cadrul expune un mijloc sigur și uniform de utilizat Android resursele dispozitivului.
1) Manager de activitate
Aplicațiile folosesc Android componentă de activitate pentru prezentarea unui punct de intrare în aplicație. Android Activitățile sunt componentele care găzduiesc interfața cu utilizatorul cu care interacționează utilizatorii aplicației. Pe măsură ce utilizatorii finali interacționează cu Android dispozitiv, pornesc, opresc și sar înainte și înapoi în multe aplicații. Fiecare eveniment de navigare declanșează activarea și dezactivarea multor activități în aplicațiile respective.
Android ActivityManager este responsabil pentru un comportament previzibil și consistent în timpul tranzițiilor aplicației. ActivityManager oferă un spațiu pentru creatorii de aplicații pentru ca aplicațiile lor să reacționeze atunci când Android OS efectuează acțiuni globale. Aplicațiile pot asculta evenimente precum rotația dispozitivului, distrugerea aplicației din cauza lipsei de memorie, o aplicație deplasată și așa mai departe.
Câteva exemple ale modului în care aplicațiile pot reacționa la aceste tranziții includ întreruperea activității într-un joc, oprirea redării muzicii în timpul unui apel telefonic.
2) Manager de ferestre
Android poate determina informațiile de pe ecran pentru a determina cerințele necesare pentru a crea ferestre pentru aplicații. Windows sunt sloturile în care putem vizualiza interfața cu utilizatorul aplicației noastre. Android folosește Managerul de ferestre pentru a furniza aceste informații aplicațiilor și sistemului pe măsură ce rulează, astfel încât acestea să se poată adapta la modul în care rulează dispozitivul.
Managerul de ferestre ajută la furnizarea unei experiențe personalizate de aplicație. Aplicațiile pot umple întregul ecran pentru o experiență captivantă sau pot partaja ecranul cu alte aplicații. Android permite acest lucru permițând mai multe ferestre pentru fiecare aplicație.
3) Manager de locație
pod Android Dispozitivele sunt echipate cu dispozitive GPS care pot obține locația utilizatorului folosind informații din satelit, la care pot merge până la precizia contorului. Programatorii pot solicita permisiunea de locație de la utilizatori, pot oferi locație și experiențe conștiente.
Android este, de asemenea, capabil să utilizeze tehnologii wireless pentru a îmbogăți detaliile locației și pentru a crește acoperirea atunci când dispozitivele sunt spații închise. Android oferă aceste funcții sub umbrela Managerului de locație.
4) Manager de telefonie
pod Android dispozitivele au un rol primordial în telefonie. Android folosește TelephoneManager pentru a combina componente hardware și software pentru a oferi caracteristici de telefonie. Componentele hardware includ părți externe, cum ar fi cartela SIM și părți ale dispozitivului, cum ar fi microfonul, camera foto și difuzoarele. Componentele software includ componente native, cum ar fi tastatura telefonică, agenda telefonică, profilurile tonurilor de apel. Folosind TelephoneManager, un dezvoltator poate extinde sau ajusta funcționalitatea implicită de apelare.
5) Manager de resurse
Android aplicația vine de obicei cu mai mult decât cod. De asemenea, au și alte resurse, cum ar fi pictograme, fișiere audio și video, animații, fișiere text și altele asemenea. Android ajută la asigurarea accesului eficient și receptiv la aceste resurse. De asemenea, asigură că resursele potrivite sunt livrate utilizatorilor finali. De exemplu, fișierele text în limba corespunzătoare sunt utilizate la completarea câmpurilor din aplicații.
6) Vizualizare sistem
Android oferă, de asemenea, un mijloc de a crea cu ușurință componente vizuale comune necesare pentru interacțiunea cu aplicația. Aceste componente includ widget-uri precum butoane, suporturi de imagini precum ImageView, componente pentru afișarea unei liste de elemente precum ListView și multe altele. Componentele sunt prefabricate, dar sunt și personalizate pentru a se potrivi nevoilor dezvoltatorilor de aplicații și branding.
7) Manager de notificare
Managerul de notificări este responsabil pentru informare Android utilizatorii evenimentelor aplicației. Face acest lucru oferind utilizatorilor semnale vizuale, audio sau vibraționale sau o combinație a acestora atunci când are loc un eveniment. Aceste evenimente au declanșatori externi și interni. Câteva exemple de declanșatoare interne sunt evenimente de stare a bateriei descărcate care declanșează o notificare pentru a arăta bateria descărcată. Un alt exemplu sunt evenimentele specificate de utilizator, cum ar fi o alarmă. Câteva exemple de declanșatori externi includ mesaje noi sau rețele wifi noi detectate.
Android oferă programatorilor și utilizatorilor finali un mijloc de a regla fin sistemul de notificări. Acest lucru poate ajuta să garanteze că pot trimite și primi evenimente de notificare într-un mijloc care se potrivește cel mai bine lor și mediilor lor actuale.
8) Manager de pachete
Android oferă, de asemenea, acces la informații despre aplicațiile instalate. Android ține evidența informațiilor despre aplicație, cum ar fi evenimentele de instalare și dezinstalare, permisiunile solicitate de aplicație și utilizarea resurselor, cum ar fi consumul de memorie.
Aceste informații le pot permite dezvoltatorilor să facă ca aplicațiile lor să activeze sau să dezactiveze funcționalitatea în funcție de noile funcții prezentate de aplicațiile însoțitoare.
9) Furnizor de conținut
Android are o modalitate standardizată de a partaja date între aplicațiile de pe dispozitiv folosind furnizorul de conținut. Dezvoltatorii pot folosi furnizorul de conținut pentru a expune datele altor aplicații. De exemplu, pot face ca datele aplicației să poată fi căutate din aplicații de căutare externe. Android el însuși expune date cum ar fi datele din calendar, datele de contact și altele asemenea, folosind același sistem.
Android Runtime și biblioteci de bază/native
1) Android Runtime
Android utilizeaza in prezent Android Runtime (ART) pentru a executa codul aplicației. ART este precedat de Dalvik Runtime care a compilat codul de dezvoltator în fișierele Dalvik Executable (fișiere Dex). Aceste medii de execuție sunt optimizate pentru platforma Android ținând cont de constrângerile de procesor și memorie de pe dispozitivele mobile.
Timpul de execuție traduce codul scris de programatori în cod de mașină care efectuează calcule și utilizează componente de cadru Android pentru a oferi funcționalitate. Android găzduiește mai multe aplicații și componente de sistem pe care fiecare rulează în procesele lor.
Biblioteci de bază
În acest segment, vom discuta câteva dintre bibliotecile de bază care sunt prezente în Android sistem de operare.
2) MediaFramework
Android de asemenea, acceptă nativ codecuri media populare, facilitând aplicațiile create pe Android platformă pentru a utiliza/reda componente multimedia din cutie.
3) SQLite
Android are de asemenea un SQLite Baza de date care permite aplicațiilor să aibă o funcționalitate nativă a bazei de date foarte rapidă, fără a fi nevoie de biblioteci terțe.
4) Tip liber
Android vine cu un motor de fonturi rapid și flexibil preinstalat. Acest lucru face posibil ca dezvoltatorii de aplicații să stileze componentele aplicației lor și să ofere o experiență bogată care comunică intenția dezvoltatorului.
5) OpenGL
Android vine și cu sistemul grafic OpenGL. Este o bibliotecă C care ajută Android utilizați componente hardware în redarea în timp real a graficelor 2D și 3D.
6) SSL
Android vine, de asemenea, cu un strat de securitate încorporat pentru a permite comunicarea securizată între aplicații activate Android și alte dispozitive, cum ar fi servere, alte dispozitive mobile, routere 6.
7) SGL
Android vine cu o bibliotecă grafică implementată în cod de nivel scăzut care redă eficient grafica pentru platforma Android. Funcționează cu componentele de nivel superior ale Android cadru Android conductă grafică.
8) Libc
Nucleul de Android conţine biblioteci scrise în C şi C++, care sunt limbaje de nivel scăzut destinate utilizării încorporate care ajută la maximizarea performanței. Libc oferă un mijloc de a expune funcționalităților de sistem de nivel scăzut, cum ar fi Threads, Sockets, IO și altele asemenea acestor biblioteci.
9) Webkit
Acesta este un motor de browser open-source folosit ca bază pentru a construi browsere. Implicit Android browser înainte de versiunea 4.4 KitKat îl folosește pentru randarea paginilor web. Permite dezvoltatorilor de aplicații să redeze componente web în sistemul de vizualizare folosind WebView. Acest lucru permite aplicațiilor să integreze componente web în funcționalitatea lor.
10) Manager de suprafață
Managerul de suprafață este responsabil pentru asigurarea redării fără probleme a ecranelor de aplicare. Face acest lucru compunând grafică 2D și 3D pentru randare. Mai mult, permite acest lucru făcând tamponări în afara ecranului.
Linux Kernel
Componenta rădăcină a Android Sistemul este Linux Kernel. Este piesa de bază care permite totul Androidfuncționalitatea lui.
Kernel-ul Linux este o bucată de software testată în luptă care a fost folosită în dezvoltare sisteme de operare pentru dispozitive de gamă largă, de la supercomputere la gadgeturi mici. Are abilități limitate de procesare, cum ar fi mici gadgeturi în rețea pentru Internetul lucrurilor (IoT).
Kernel-ul Linux poate fi modificat pentru a îndeplini specificațiile dispozitivului pentru a face posibilă realizarea producătorilor Android dispozitive cu capacități diferite pentru a se potrivi experienței utilizatorului.
Cu privire la Android, Kernel-ul este responsabil pentru multe funcționalități fundamentale, inclusiv, dar fără a se limita la acestea:
- Drivere de dispozitive
- Managementul memoriei
- Administrarea procesului
Să extindem câteva dintre funcționalități:
Drivere de dispozitive
Kernel-ul Linux găzduiește driverele necesare pentru a face posibil ca sistemul de operare să funcționeze cu diferite componente hardware. Aceste drivere oferă o interfață standard cu care pot lucra componente hardware provenite de la diferiți producători.
Acest lucru face posibil ca producătorii de dispozitive să obțină diferite componente, cum ar fi componente Bluetooth, componente Wifi, componente ale camerei. Atâta timp cât producătorii se potrivesc cu Android specificații standard, integrarea este perfectă.
1) Driver USB
Linux oferă, de asemenea Android cu un mijloc de interfață cu dispozitivele USB. Dispozitivele moderne vin cu diferite porturi USB, inclusiv USB 2.0 și versiuni noi de USB, inclusiv USB-C. Aceste drivere fac posibilă utilizarea portului USB pentru a încărca, a transfera date live, cum ar fi jurnalele de la Android dispozitive și interacționează cu Android Sistemul de fișiere.
2) Driver Bluetooth
Linux Kernel oferă suport pentru interfața cu componente hardware Bluetooth. Oferă o modalitate de a citi și scrie datele primite de la frecvențele radio Bluetooth acceptate. De asemenea, oferă un set de facilități pentru Android pentru a configura Bluetooth.
3) Driver Wifi
Nucleul Linux oferă drivere pentru integrarea componentelor hardware de rețea WiFi. Componentele WiFi încorporate în dispozitivele mobile sunt activate Android dispozitive pentru a se conecta la rețele wifi. Driverul permite componentelor wifi să transmită rețele wifi și să creeze hotspot-uri.
4) Driver de afișare
Android face posibilă interfața cu componentele de afișare. Pentru majoritatea dispozitivelor, componenta de interfață este un ecran tactil LCD. Permite suport pentru configurarea și desenarea pixelilor.
5) Driver audio
Android dispozitivele vin de obicei cu componente hardware pentru intrare și ieșire audio. Driverele audio din nucleu activează Android sistem să utilizeze audio primit de la aceste componente și, de asemenea, să producă ieșire audio.
6) Manager de putere
pod Android dispozitivele sunt utilizate în timp ce sunt deconectate de la prize. Astfel, depind de baterii pentru a le alimenta pentru o mare parte din utilizarea lor. Linux Kernel vine cu un sistem de gestionare a energiei care este configurabil pentru a satisface nevoile dispozitivelor care îl folosesc.
Android Sistemul de operare folosește managerul de energie pentru a face alte componente ale dispozitivului să fie conștiente de alimentare. Face acest lucru prin difuzarea diferitelor state legate de putere. Aceste stări sunt Standby, Sleep și Low-Battery. Pe Android, managerul de alimentare este reglat implicit în modul de repaus pentru a asigura o durată maximă de viață a bateriei.
Power Manager expune mijloacele pentru ca aplicațiile să reacționeze la diferite moduri de alimentare. Aplicațiile își pot schimba, de asemenea, comportamentul pentru a se potrivi cu starea curentă de alimentare a dispozitivului.
O aplicație poate solicita, de asemenea, modificarea politicilor implicite de alimentare. Aplicațiile pot atinge funcționalitatea dorită, cum ar fi menținerea componentelor hardware active. Un exemplu este menținerea ecranului activ atunci când citiți o carte pentru a vă asigura că un utilizator nu este întrerupt. Un alt exemplu este menținerea componentelor audio pornite atunci când ascultați muzică în fundal.
7) Memorie flash
pod Android dispozitivele folosesc memoria flash ca mijloc de stocare. Memoria flash este rapidă și ocupă mai puțin spațiu, ceea ce o face perfectă pentru dispozitivele mici. Nucleul Linux oferă un mijloc pentru Android dispozitive pentru a citi și scrie în memoria flash. Oferă un mijloc de a partiționa memoria astfel încât sistemul de operare și alte aplicații să poată partaja cu ușurință și eficient resursele de memorie.
8) Liant
Android găzduiește multe aplicații și componente de sistem pe care fiecare rulează în procesele lor. În cele mai multe cazuri, aceste procese ar trebui izolate unele de altele pentru a preveni interferențele și coruperea datelor. Cu toate acestea, există cazuri în care dorim să transmitem date de la un proces la altul.
Nucleul Linux permite funcționalitatea de partajare a datelor prin furnizarea de drivere de legătură. Driverele de legătură permit comunicarea între procese, IPC. Utilizarea proceselor IPC poate descoperi alte procese și poate partaja informații.
Managementul memoriei
O altă responsabilitate a kernelului Linux este gestionarea memoriei. Pe măsură ce rulează diferite aplicații, Kernel-ul asigură că spațiul de memorie pe care îl folosesc nu intră în conflict și nu se suprascrie unul pe celălalt.
De asemenea, vă ajută să vă asigurați că toate aplicațiile care rulează beneficiază de memorie adecvată pentru a funcționa, asigurându-vă că nicio aplicație nu ocupă prea mult spațiu.
Administrarea procesului
Fiecare aplicație din Android rulează într-un proces. Kernel-ul este, de asemenea, responsabil pentru gestionarea proceselor. Aceasta înseamnă că este responsabil pentru crearea, întreruperea, oprirea, închiderea sau oprirea proceselor.
Kernel-ul permite diverse funcționalități, cum ar fi rularea mai multor procese în același timp, comunicarea între procese, rularea proceselor în fundal și așa mai departe.
Deoarece fiecare proces necesită propriul spațiu de memorie pentru a funcționa corect, Kernel-ul asigură că spațiile de memorie alocate fiecărui proces sunt protejate de alte procese. De asemenea, asigură că resursele ca RAM alocate proceselor sunt eliberate atunci când procesele sunt oprite.
Kernel-ul Linux este, de asemenea, responsabil pentru distribuirea lucrărilor către procesoarele prezente în dispozitiv. Acest lucru face posibilă maximizarea performanței dispozitivelor cu mai multe nuclee, deoarece aplicațiile diferite vor avea procese rulate pe un nucleu diferit.
Kernel-ul Linux face mai multe sarcini sub capotă, inclusiv aplicarea securității.
Rezumat
- Android arhitectura este organizată în straturi.
- Fiecare strat rezolvă un set unic de probleme.
- Utilizatorii finali interacționează cu aplicațiile din stratul Aplicație
- Dezvoltatorii de aplicații dezvoltă aplicații pentru a fi utilizate pe stratul Aplicație. Ei fac acest lucru folosind instrumente și abstracții furnizate de Cadrul de aplicații.
- Android Stratul cadru simplifică accesul la componentele de nivel scăzut prin crearea unui API peste bibliotecile native.
- Android Runtime și Core-Libraries folosesc limbaje de nivel scăzut împreună cu optimizări pentru dispozitivele mobile. Acest lucru asigură că codul scris de dezvoltatorii de aplicații funcționează fără probleme, în ciuda Android constrângerile dispozitivului.
- La partea de jos a Android stiva de software este nucleul Linux. Se interfață cu componentele hardware comune în Android dispozitive.