Android Architecture: Application Layers, Framework, Component
Android První vydání operačního systému bylo v roce 2008. Již na začátku ho tým stojící za operačním systémem postavil na ramena gigantů. Kromě uživatelského rozhraní, které Android OS se vyskytuje na úrovni povrchu, skládá se z více vrstev. Tyto vrstvy zahrnují vlastní kód a open-source technologie, které jsou nepřetržitě vyvíjeny po celá desetiletí.
Android byl vyvinut díky masivní spolupráci a investicím mnoha společností. Hlavní společností za vývojem Androidu je Google. Mezi další společnosti patří výrobci zařízení jako Samsung, LG; výrobci procesorů, jako jsou Intel a ARM, ale abychom jmenovali alespoň některé.
Když o tom mluvíme Android architektura, myslíme tím, jak Android systém byl navržen, rozdělen do vrstev a sestaven tak, aby fungoval jako systém. Vybudování tak složitého systému vyžaduje pečlivé strukturování, aby bylo zajištěno, že všechny komponenty budou spolupracovat soudržně. Jeho architektura zajišťuje, že mnoho komponent funguje jako celek bez selhání.
Vrstvy
Následují vrstvy, které tvoří Android architektura podle schématu:
- editaci videa
- Aplikační rámec
- Android Runtime a základní knihovny
- Linux Kernel
Vývoj operačního systému pro mobilní zařízení přináší řadu výzev. Použití této vrstvené architektury zajišťuje, že různé problémy jsou rozděleny a řešeny na různých úrovních.
Vrstvená architektura pomáhá oddělit obavy a zajistit, aby vývojáři softwaru pro Android nemuseli na každém kroku řešit problémy nízké úrovně. Místo toho se mohou zaměřit na poskytování obchodní hodnoty týkající se vrstvy, na které pracují.
Vývojáři pracují na tom, aby se aplikace nemusely starat o implementaci aplikačního rámce. Tato práce je ponechána na systémových vývojářích pracujících na aplikačním rámci.
Vývojáři Application Framework pracují na zkušenostech vývojáře a nemusí se starat o ovladače nízké úrovně. Nízkoúrovňoví systémoví inženýři se mohou zcela soustředit na nízkoúrovňové komponenty, jako jsou Bluetooth nebo Audio ovladače a podobně.
AndroidVrstvená struktura umožňuje aplikovat aktualizace s opravami chyb nebo vylepšeními na každou vrstvu samostatně. Tím je zajištěno, že se změny napříč vrstvami vzájemně neovlivňují. To umožňuje lidem pracujícím na jiné úrovni operačního systému pracovat s tím, že si navzájem překáží, když jsou prováděny nové aktualizace a vydání.
Android editaci videa
Toto je vrstva, se kterou komunikují koncoví uživatelé. Právě na této vrstvě vývojáři aplikací publikují své aplikace ke spuštění.
Android, ve výchozím nastavení přichází se sadou aplikací, díky nimž jsou zařízení Android použitelná od začátku.
- Home: Domovská stránka zapnuta Android sestává ze spouštěcích ikon pro běžně používané aplikace, ke kterým může koncový uživatel chtít rychlý přístup. Aplikace můžete spustit kliknutím na spouštěče těchto aplikací. Úplně nahoře na obrazovce máte widgety, které ukazují síť, úroveň baterie, datum a čas.
- Kontakty: Android, ve výchozím nastavení poskytuje prostředky pro ukládání a načítání kontaktů. Kontaktní informace jsou sdíleny mezi ostatními aplikacemi za účelem vylepšení funkčnosti.
- Zprávy: Android poskytuje možnost odesílat a přijímat SMS zprávy.
- Koordinátorka: Ivana Durgarian email: Android přichází s nativní podporou e-mailových služeb. Nastavení Android zařízení vyžaduje účet Gmail. Nastavení Gmailu aktivuje další součásti závislé na e-mailu Android zařízení. Některé funkce závislé na e-mailu zahrnují mechanismy zabezpečení a obnovení. Další funkcí závislou na e-mailu je přístup do Obchodu Play, tržiště Android aplikace.
- Prohlížeč: Android je dodáván s výchozím prohlížečem.
- Zásuvka oznámení: Přejetím prstem dolů po obrazovce se objeví oznamovací zásuvka. Poskytuje události aplikace, o kterých by měl uživatel vědět. Nad upozorněním je sada zástupců některých běžně používaných nastavení zařízení, která mohou uživatelé přepínat. Tato nastavení zahrnují přepínače zapnutí a vypnutí pro různé hardwarové komponenty, jako je Bluetooth a Wifi. Dlouhé stisknutí těchto událostí nám umožní přejít na stránku jejich konfigurace.
Tato vrstva je také označována jako uživatelská úroveň na rozdíl od vrstev níže, které jsou většinou vyladěny pro vývoj aplikací. Vývojáři aplikací vytvářejí a přizpůsobují prostředí pro své aplikace v této vrstvě. Vrstvy pod aplikační vrstvou nejsou přizpůsobeny vývojáři aplikací. Jsou považovány za součást systémové vrstvy. Tyto vrstvy jsou přizpůsobeny výrobci zařízení, týmy Google Android nebo třetími stranami, které chtějí používat Android zdrojový kód jejich produktu nebo výzkumu.
Aplikační rámec
Jedno Android OS odhaluje základní knihovny a funkce Android zařízení, která používají a Java API. To je to, co je známé jako Android rámec. Rámec odhaluje bezpečné a jednotné prostředky k použití Android prostředky zařízení.
1) Manažer činnosti
Aplikace využívají Android komponenta aktivity pro prezentaci vstupního bodu do aplikace. Android Aktivity jsou komponenty, které obsahují uživatelské rozhraní, se kterým uživatelé aplikace interagují. Při interakci koncových uživatelů s Android zařízení, spouštějí, zastavují se a přeskakují tam a zpět v mnoha aplikacích. Každá navigační událost spouští aktivaci a deaktivaci mnoha aktivit v příslušných aplikacích.
Jedno Android ActivityManager je zodpovědný za předvídatelné a konzistentní chování během přechodů aplikací. ActivityManager poskytuje tvůrcům aplikací slot pro to, aby jejich aplikace reagovaly, když Android OS provádí globální akce. Aplikace mohou poslouchat události, jako je rotace zařízení, zničení aplikace kvůli nedostatku paměti, posunutí aplikace mimo záběr a tak dále.
Některé příklady způsobu, jakým mohou aplikace reagovat na tyto přechody, zahrnují pozastavení aktivity ve hře, zastavení přehrávání hudby během telefonního hovoru.
2) Správce oken
Android dokáže určit informace o obrazovce a určit požadavky potřebné k vytvoření oken pro aplikace. Windows jsou sloty, kde můžeme zobrazit uživatelské rozhraní naší aplikace. Android používá správce oken k poskytování těchto informací aplikacím a systému během jejich běhu, aby se mohly přizpůsobit režimu, ve kterém zařízení běží.
Správce oken pomáhá při poskytování přizpůsobené aplikace. Aplikace mohou zaplnit celou obrazovku pro pohlcující zážitek nebo sdílet obrazovku s jinými aplikacemi. Android umožňuje to povolením více oken pro každou aplikaci.
3) Správce polohy
Většina Android zařízení jsou vybavena zařízeními GPS, která dokážou získat polohu uživatele pomocí satelitních informací, které mohou dosahovat až s přesností na metry. Programátoři mohou vyžadovat od uživatelů povolení k umístění, poskytovat umístění a vědomé zážitky.
Android je také schopen využít bezdrátové technologie k dalšímu obohacení podrobností o poloze a zvýšení pokrytí, když jsou zařízení uzavřena. Android poskytuje tyto funkce pod záštitou Location-Manager.
4) Správce telefonie
Většina Android zařízení hrají primární roli v telefonování. Android používá TelephoneManager ke kombinaci hardwarových a softwarových komponent pro poskytování telefonních funkcí. Hardwarové součásti zahrnují externí části, jako je sim karta, a části zařízení, jako je mikrofon, kamera a reproduktory. Softwarové komponenty zahrnují nativní komponenty, jako je číselník, telefonní seznam, vyzváněcí profily. Pomocí TelephoneManager může vývojář rozšířit nebo doladit výchozí funkci volání.
5) Správce zdrojů
Android aplikace obvykle obsahuje více než jen kód. Mají také další zdroje, jako jsou ikony, audio a video soubory, animace, textové soubory a podobně. Android pomáhá zajistit efektivní a citlivý přístup k těmto zdrojům. Zajišťuje také, že koncovým uživatelům jsou dodávány správné zdroje. Například při vyplňování polí v aplikacích se používají textové soubory ve správném jazyce.
6) Zobrazit systém
Android také poskytuje prostředky pro snadné vytváření společných vizuálních komponent potřebných pro interakci s aplikacemi. Tyto komponenty zahrnují widgety, jako jsou tlačítka, držáky obrázků, jako je ImageView, komponenty pro zobrazení seznamu položek, jako je ListView, a mnoho dalších. Komponenty jsou předem vyrobené, ale lze je také přizpůsobit potřebám vývojářů aplikací a značce.
7) Správce oznámení
Za informování zodpovídá Správce oznámení Android uživatelé událostí aplikace. Dělá to tak, že když dojde k události, dává uživatelům vizuální, zvukové nebo vibrační signály nebo jejich kombinaci. Tyto události mají vnější a vnitřní spouštěče. Některé příklady interních spouštěčů jsou události stavu vybití baterie, které spouštějí oznámení o vybití baterie. Dalším příkladem jsou uživatelem specifikované události, jako je alarm. Některé příklady externích spouštěčů zahrnují nové zprávy nebo detekované nové sítě Wi-Fi.
Android poskytuje programátorům a koncovým uživatelům prostředek k doladění systému oznámení. To může pomoci zaručit, že mohou odesílat a přijímat události oznámení způsobem, který nejlépe vyhovuje jim a jejich aktuálnímu prostředí.
8) Správce balíčků
Android také poskytuje přístup k informacím o nainstalovaných aplikacích. Android sleduje informace o aplikaci, jako jsou události instalace a odinstalace, oprávnění, která aplikace požaduje, a využití zdrojů, jako je spotřeba paměti.
Tyto informace mohou vývojářům umožnit, aby jejich aplikace aktivovaly nebo deaktivovaly funkce v závislosti na nových funkcích nabízených doprovodnými aplikacemi.
9) Poskytovatel obsahu
Android má standardizovaný způsob sdílení dat mezi aplikacemi v zařízení pomocí poskytovatele obsahu. Vývojáři mohou využít poskytovatele obsahu k vystavení dat jiným aplikacím. Mohou například umožnit vyhledávání dat aplikace z externích vyhledávacích aplikací. Android sám zpřístupňuje data, jako jsou kalendářní data, kontaktní data a podobně, pomocí stejného systému.
Android Runtime a základní/nativní knihovny
1) Android Runtime
Android aktuálně používá Android Runtime (ART) pro spuštění kódu aplikace. ART předchází Dalvik Runtime, který kompiloval vývojářský kód do Dalvik Executable souborů (Dex souborů). Tato spouštěcí prostředí jsou optimalizována pro platformu Android s ohledem na omezení procesoru a paměti na mobilních zařízeních.
Runtime překládá kód napsaný programátory do strojového kódu, který provádí výpočty a využívá komponenty frameworku Android k poskytování funkcí. Android hostuje více aplikací a systémových komponent, z nichž každá běží ve svých procesech.
Základní knihovny
V tomto segmentu budeme diskutovat o některých základních knihovnách, které jsou přítomny v Android operační systém.
2) MediaFramework
Android také nativně podporuje oblíbené mediální kodeky, což usnadňuje aplikace vytvořené na Android platforma pro použití/přehrávání multimediálních komponent ihned po vybalení.
3) SQLite
Android také má SQLite databáze to umožňuje aplikacím mít velmi rychlou nativní databázovou funkčnost bez potřeby knihoven třetích stran.
4) Volný typ
Android přichází s předinstalovaným rychlým a flexibilním fontem. To umožňuje vývojářům aplikací stylizovat komponenty jejich aplikace a poskytovat bohaté zkušenosti, které komunikují záměr vývojáře.
5) OpenGL
Android přichází také s grafickým systémem OpenGL. Je to knihovna C, která pomáhá Android používat hardwarové komponenty při vykreslování 2D a 3D grafiky v reálném čase.
6) SSL
Android také přichází s vestavěnou bezpečnostní vrstvou, která umožňuje bezpečnou komunikaci mezi aplikacemi Android a další zařízení, jako jsou servery, další mobilní zařízení, směrovače 6.
7) SGL
Android přichází s grafickou knihovnou implementovanou v nízkoúrovňovém kódu, která efektivně vykresluje grafiku pro platformu Android. Pracuje s komponentami vyšší úrovně Android rámec Android grafické potrubí.
8) Libc
Jádro Android obsahuje knihovny napsané v C a C++, což jsou jazyky nízké úrovně určené pro vestavěné použití, které pomáhají maximalizovat výkon. Libc poskytuje prostředky k vystavení nízkoúrovňových systémových funkcí, jako jsou vlákna, zásuvky, IO a podobně, těmto knihovnám.
9) Webkit
Jedná se o open-source prohlížečový engine používaný jako základ pro vytváření prohlížečů. Výchozí Android prohlížeč před verzí 4.4 KitKat jej používá pro vykreslování webových stránek. Umožňuje vývojářům aplikací vykreslovat webové komponenty v systému zobrazení pomocí WebView. To umožňuje aplikacím integrovat webové komponenty do jejich funkcí.
10) Správce povrchu
Správce povrchu je zodpovědný za zajištění hladkého vykreslování obrazovek aplikace. Dělá to tak, že skládá 2D a 3D grafiku pro renderování. Dále to umožňuje ukládáním do vyrovnávací paměti mimo obrazovku.
Linux Kernel
Kořenová složka Android Systém je linuxové jádro. Je to základní kus, který umožňuje vše Androidfunkčnost.
Linuxové jádro je bitvě testovaný kus softwaru, který byl použit při vývoji operační systémy pro zařízení široké škály, od superpočítačů po malé gadgety. Má omezené schopnosti zpracování, jako jsou malé síťové gadgety pro internet věcí (IoT).
Linuxové jádro lze vyladit tak, aby splňovalo specifikace zařízení, aby to výrobci mohli vyrábět Android zařízení s různými schopnostmi, aby odpovídaly uživatelské zkušenosti.
S ohledem na Android, jádro je zodpovědné za mnoho základních funkcí, včetně, ale bez omezení na tyto:
- Ovladače zařízení
- Správa paměti
- Řízení procesu
Pojďme si některé funkce rozšířit:
Ovladače zařízení
Linuxové jádro obsahuje ovladače potřebné k tomu, aby operační systém mohl pracovat s různými hardwarovými komponentami. Tyto ovladače poskytují standardní rozhraní, se kterým mohou pracovat hardwarové komponenty pocházející od různých výrobců.
To umožňuje výrobcům zařízení získávat různé komponenty, jako jsou komponenty Bluetooth, komponenty Wifi, komponenty fotoaparátu. Dokud výrobci odpovídají Android standardní specifikace, integrace je bezproblémová.
1) Ovladač USB
Linux také poskytuje Android s prostředky pro propojení se zařízeními USB. Moderní zařízení jsou dodávána s různými porty USB, včetně USB 2.0 a novými verzemi USB, včetně USB-C. Tyto ovladače umožňují používat port USB k nabíjení, přenášení živých dat, jako jsou protokoly z počítače Android zařízení a komunikovat se systémem Android souborový systém.
2) Ovladač Bluetooth
Linux Kernel poskytuje podporu pro propojení s hardwarovými komponenty Bluetooth. Poskytuje způsob, jak číst a zapisovat data přijatá z podporovaných rádiových frekvencí bluetooth. Poskytuje také sadu zařízení pro Android pro konfiguraci Bluetooth.
3) Wifi ovladač
Linuxové jádro poskytuje ovladače pro integraci hardwarových komponent WiFi sítě. WiFi komponenty zabudované v mobilních zařízeních umožňují Android zařízení pro připojení k sítím wifi. Ovladač umožňuje komponentám wifi vysílat sítě wifi a vytvářet hotspoty.
4) Ovladač zobrazení
Android umožňuje propojení s komponentami displeje. U většiny zařízení je součástí rozhraní dotyková obrazovka LCD. Umožňuje podporu pro konfiguraci a kreslení pixelů.
5) Ovladač zvuku
Android zařízení běžně přicházejí s hardwarovými součástmi pro audio vstup a výstup. Zvukové ovladače v jádře umožňují Android systém používat zvuk přijímaný z těchto komponent a také produkovat zvukový výstup.
6) Správce napájení
Většina Android zařízení se používají, když jsou odpojena od elektrických zásuvek. Jsou tak závislé na bateriích, které je pohánějí po velkou část jejich použití. Linuxové jádro přichází se systémem správy napájení, který lze konfigurovat tak, aby vyhovoval potřebám zařízení, která jej používají.
Android Operační systém používá správce napájení k tomu, aby ostatní součásti v zařízení uvědomovaly o napájení. Dělá to vysíláním různých stavů souvisejících s mocí. Tyto stavy jsou Standby, Sleep a Low-Battery. Na Android, je správce napájení nastaven do výchozího režimu spánku, aby byla zajištěna maximální výdrž baterie.
Power Manager odhaluje prostředky, kterými mohou aplikace reagovat na různé režimy napájení. Aplikace mohou také změnit své chování tak, aby odpovídalo aktuálnímu stavu napájení zařízení.
Aplikace může také požádat o změnu výchozích zásad napájení. Aplikace mohou dosáhnout požadované funkčnosti, jako je udržování aktivních hardwarových komponent. Příkladem je ponechání aktivní obrazovky při čtení knihy, aby uživatel nebyl vyrušován. Dalším příkladem je ponechání zapnutých audio komponent při poslechu hudby na pozadí.
7) Flash paměť
Většina Android zařízení používají flash paměť jako prostředek úložiště. Flash paměť je rychlá a zabírá méně místa, takže je ideální pro malá zařízení. Linuxové jádro poskytuje prostředky pro Android zařízení pro čtení a zápis do paměti flash. Poskytuje prostředky k rozdělení paměti takovým způsobem, aby operační systém a další aplikace mohly snadno a efektivně sdílet paměťový zdroj.
8) Pojivo
Android hostuje mnoho aplikací a systémových komponent, z nichž každá běží ve svých procesech. Ve většině případů by tyto procesy měly být od sebe izolovány, aby se zabránilo rušení a poškození dat. Přesto existují případy, kdy chceme předávat data z jednoho procesu do druhého.
Linuxové jádro umožňuje funkci sdílení dat tím, že poskytuje ovladače pojiva. Ovladače Binder umožňují meziprocesovou komunikaci, IPC. Pomocí procesů IPC lze objevovat další procesy a sdílet informace.
Správa paměti
Další odpovědností linuxového jádra je správa paměti. Jak běží různé aplikace, jádro zajišťuje, že paměťový prostor, který používají, není v konfliktu a vzájemně se nepřepisují.
Pomáhá také zajistit, aby všechny spuštěné aplikace měly dostatek paměti, aby fungovaly, takže žádná aplikace nezabírá příliš mnoho místa.
Řízení procesu
Každá aplikace v Android běží v procesu. Kernel je také zodpovědný za řízení procesů. To znamená, že je zodpovědný za vytváření, pozastavení, zastavení, zavírání nebo ukončování procesů.
Kernel umožňuje různé funkcionality, jako je spouštění více procesů současně, komunikace mezi procesy, spouštění procesů na pozadí a tak dále.
Protože každý proces vyžaduje svůj vlastní paměťový prostor, aby správně fungoval, jádro zajišťuje, že paměťové prostory přidělené pro každý proces jsou chráněny před ostatními procesy. Zajišťuje také, že zdroje jako RAM přidělené procesům se uvolní, když jsou procesy vypnuty.
Linuxové jádro je také zodpovědné za distribuci práce procesorům přítomným v zařízení. To umožňuje maximalizovat výkon zařízení s více jádry, protože různé aplikace budou mít procesy spuštěné na jiném jádru.
Linuxové jádro dělá pod kapotou více úkolů, včetně vynucování bezpečnosti.
Shrnutí
- Android architektura je organizována ve vrstvách.
- Každá vrstva řeší jedinečný soubor problémů.
- Koncoví uživatelé komunikují s aplikacemi na aplikační vrstvě
- Vývojáři aplikací vyvíjejí aplikace, které mají být použity na aplikační vrstvě. Činí tak pomocí nástrojů a abstrakcí poskytovaných aplikačním rámcem.
- Android Vrstva Framework zjednodušuje přístup k nízkoúrovňovým komponentám vytvořením API přes nativní knihovny.
- Android Runtime a Core-Libraries používají nízkoúrovňové jazyky spolu s optimalizacemi pro mobilní zařízení. To zajišťuje, že kód napsaný vývojáři aplikací běží hladce navzdory Android omezení zařízení.
- Ve spodní části Android softwarový zásobník je jádro Linuxu. Propojuje se s běžnými hardwarovými součástmi Android zařízení.