Image
16.6.2016 0 Comments

Vývoj pre Android – Architektúra platformy Android / 4. časť

Späť na úvod >> Späť na seriál

V predchádzajúcich častiach sme predstavili konfiguráciu vývojárskych nástrojov a postup vytvorenia jednoduchej aplikácie. Aby ste mohli vytvárať reálne aplikácie, potrebujete aspoň v hrubých črtách poznať architektúru operačného systému, pod ktorým budú aplikácie bežať.

Architektúru Androidu budeme opisovať podľa schémy na obrázku zdola nahor, teda od najnižšej architektonickej vrstvy.

architektura1.png

Schéma architektúry operačného systému Android

Linuxový kernel

Základný pilier, teda najnižšia vrstva architektúry Androidu je upravené jadro populárneho operačného systému Linux. Úpravy sa týkajú redukcie funkcií a ich prispôsobenia možnostiam mobilných zariadení.

Vývojári bežných aplikácií s jadrom do priameho kontaktu neprídu. Pri použití ADB (Android Debug Bridge) získate prístup k príkazovému rozhraniu Linux Shell a môžete jeho prostredníctvom zadávať jadru operačného systému príkazy.

Jadro slúži na priamu interakciu s hardvérom mobilného zariadenia, čím zabezpečuje úplnú abstrakciu od hardvéru pre vyššie softvérové vrstvy. Zabezpečuje správu pamäte, správu procesov, základnú sieťovú vrstvu a ovládače. Riadenie procesov umožňuje, aby viac procesov bežalo súčasne bez toho, aby sa navzájom ovplyvňovali.

Na úrovni jadra je implementované aj zabezpečenie systému, správa napájania, vstupno-výstupné operácie či základná grafika. Ovládač pre GSM zabezpečuje funkcie telefónu. Podľa hardvérovej konfigurácie sú na tejto úrovni aj moduly ovládačov pre Bluetooth, EDGE, 3G, Wi-Fi, fotoaparát, GPS, kompas, akcelerometer, modul rozhlasového prijímača a ďalšie. Modul Binder implementuje mechanizmus umožňujúci viacerým procesom zdieľať údaje.

Aplikácie a služby sú spúšťané v oddelených procesoch a dosť často potrebujú vzájomne komunikovať. Na druhej strane možnosť priamej komunikácie medzi procesmi je jedno z najväčších bezpečnostných rizík.

Preto je na platforme Android implementovaný medziprocesorový ovládač komunikácie a volania metód s názvom Binder, ktorý umožňuje viacerým procesom zdieľať údaje. Využíva zdieľanú pamäť, pričom údaje sú odovzdávané ako balíčky. Komunikácia procesov je riadená, Binder počíta a mapuje vzájomné referencie naprieč systémom, takže presúvané objekty môžu byť v prípade potreby identifikované, vysledované a zrušené.

Ako to funguje? Všetky aplikácie sa pri spustení zaregistrujú v službe Service Manager. Keď potrebuje nejaký proces komunikovať s iným procesom, osloví Service Manager. Ten poskytne procesu potrebné informácie a následne sa proces obráti priamo na požadovanú službu. Binder plní pri komunikácii medzi procesmi úlohu sprostredkovateľa.

Súčasťou jadra je aj správa napájania. Tá zabezpečuje, aby energeticky najnáročnejšie moduly, t. j. procesor a obrazovka, boli pri dlhšej nečinnosti vypínané. Niektoré aplikácie, napríklad prehrávač videa či navigácia GPS, potrebujú bežať aj pri dlhšej nečinnosti používateľa. Preto Android disponuje systémom špeciálnych zámkov Wakelocks, ktoré umožňujú ponechať zariadenie aktívnym, pokiaľ beží požadovaná aplikácia. Na zobudenie zariadenia z režimu spánku v prípade potreby slúžia objekty Alarm Timers.

Libraries

Nad jadrom je situovaná vrstva knižníc, ktoré poskytujú prístup aplikácií k rôznym komponentom systému Android. Sú to natívne knižnice, napísané v C/C++. Tvoria medzivrstvu medzi rôznymi komponentmi vyšších vrstiev a linuxovým jadrom. Modul Surface Manager podporuje funkcionalitu multidotykového displeja. Zabezpečuje výslednú kompozíciu grafického výstupu viacerých aplikácií do súvislého toku dát, ktorý smeruje do grafickej vyrovnávacej pamäte. Z tejto pamäte prebieha vykresľovanie na obrazovku. Webkit je určený na renderovanie a zobrazovanie webových stránok. Na tejto úrovni sú implementované knižnice médií, grafické 2D a 3D knižnice, pričom 3D knižnice využívajú podporu OpenGL ES (OpenGL for Embedded Systems) s voliteľnou možnosťou využitia grafických akcelerátorov. Aplikácie pracujúce s údajmi môžu využiť SQLite. Knižnice v tejto vrstve suplujú linuxové funkcie, o ktoré bolo redukované jadro operačného systému. Systémová knižnica LibC je optimalizovaná pre mobilné zariadenia, takže obsahuje len časti, ktoré sú potrebné pre Android.

Android Runtime

Android Runtime obsahuje súbor základných knižníc. Každá androidová aplikácia je samostatný proces využívajúci vlastnú inštanciu virtuálneho stroja DVM (Dalvik Virtual Machine). Ten zabezpečuje beh spustiteľných súborov s príponou (Dex). Súbory Dex vznikli kompiláciou z klasických súborov Class a Jar. Sú kompaktnejšie ako klasické súbory Java class. Dalvik je optimalizovaný pre mobilné zariadenia, to znamená, že berie do úvahy obmedzené možnosti napájania, menšiu pamäť a podobne. Súčasne môže bežať viac inštancií virtuálneho stroja.

Dalvik Virtual Machine na mobilných zariadeniach je analógia Java Virtual Machine na klasických počítačoch, na rozdiel od JVM sú aplikácie spúšťané vo svojich procesoch.

Čo sa stane, keď spustíte aplikáciu napísanú v jazyku Java?

  • Java kompilátor preloží súbory zdrojového kódu vašej aplikácie do viacerých binárnych súborov Java.
  • Nástroj s názvom DX transformuje tieto binárne súbory Java do jedného súboru vo formáte dex (Dalvik Executive file). Sem sa pridávajú aj iné zdroje, ktoré aplikácia využíva, napríklad obrázky. Súbor s príponou dex obsahuje kompletný vykonateľný kód aplikácie.
  • Virtuálny stroj Dalvik potom tento súbor začne vykonávať.

Application Framework

Aplikačný framework obsahuje v aplikáciách opakovane použiteľný softvér, napríklad ovládacie prvky, ikony a podobne. Framework je napísaný v Jave a je to najdôležitejšia vrstva pre vývojára aplikácií. Poskytuje aplikáciám základné služby systému.

Package Manager - modul správca balíčkov je v podstate databáza, ktorá udržuje aktuálny zoznam všetkých aplikácií nainštalovaných vo vašom zariadení. Vizuálnym obrazom správcu balíčkov je domovská obrazovka zariadenia. Každá ikona reprezentuje balíček aplikácie. Prečo sme zamerali vašu pozornosť práve na tento modul? Každá z aplikácií môže nadviazať kontakt s inými aplikáciami napríklad s cieľom zdieľať údaje, prípadne jedna aplikácia môže požiadať služby inej aplikácie.

Window Manager - spravuje okná, ktoré tvoria aplikácie. Androidové aplikácie väčšinou využívajú dve a viac okien súčasne. Napríklad ak si spustíte navonok jednoduchú aplikáciu prehliadača webového obsahu, pozostáva z dvoch okien. V hornej časti je lišta oznámení, zobrazujúca rôzne ukazovatele, napríklad silu signálu GSM či Wi-Fi, stav zostávajúcej energie batérie, čas a podobne. O túto lištu sa vy ako vývojár aplikácie nestaráte, to je záležitosť operačného systému. Webová stránka je zobrazená v hlavnom okne aplikácie. Aplikácie môžu použiť rôzne ďalšie okná, napríklad na zobrazenie menu alebo dialógov.

View System - spravuje širokú paletu spoločných prvkov grafického používateľského rozhrania, ako sú ikony, tlačidlá, prvky na zobrazenie a editovanie textu a mnohé ďalšie.

Aplikačný framework obsahuje aj službu Activity Manager, ktorá spravuje životný cyklus aplikácie, Notification Manager, Location Manager a ďalšie moduly, ktoré poskytujú prístup k základným zdrojom. Táto vrstva je navrhnutá tak, aby jej komponenty boli ľahko použiteľné a vymeniteľné používateľom.

Aplikácie

Na najvyššej úrovni architektúry operačného systému Android sú aplikácie, napríklad program na posielanie správ, navigáciu, kalendár, zoznam kontaktov a podobne. Na tejto úrovni budú bežať aj vami vytvorené aplikácie.

V budúcom pokračovaní sa budeme venovať aktivitám a ich životnému cyklu.

 


Nechajte si posielať prehľad najdôležitejších správ emailom

Mohlo by Vás zaujímať

Ako na to

Ako zbaviť fotky hmly

08.12.2016 11:59

Hmla alebo dym sú často veľmi kreatívne nástroje. No všetkého veľa škodí. Fotka potom stráca kontrast a v podstate na nej nič nevidieť. Hmlu môžete neraz následnými úpravami odstrániť alebo zredukovať ...

Ako na to

Užitočné SW nástroje

08.12.2016 11:53

AllDup v4.0.3 Určenie: program na vyhľadávanie a odstraňovanie duplicitných súborov Vlastnosti: duplicitné súbory sa vyhľadávajú len na zvolených diskových jednotkách alebo len v rámci vybraných ...

Ako na to

Fotografovanie s bleskom

08.12.2016 11:47

Ak máte moderný fotoaparát so vstavaným alebo externým bleskom, zdá sa vám téma článku triviálna. Jednoducho nastavíte vhodný režim, vyberiete najlepšiu kompozíciu záberu, exponujete a o zvyšok sa už ...

Žiadne komentáre

Vyhľadávanie

Kyocera - prve-zariadenia-formatu-a4-s-vykonom-a3

Najnovšie videá