Android ArchiTecture: Application Layers, Framework, Component
Android Az operációs rendszer első kiadása 2008-ban volt. Az operációs rendszer mögött álló csapat már az induláskor is az óriások vállára építette. A felhasználói felületen túl, amely a Android Az operációs rendszer felszíni szinten jelenik meg, több rétegből áll. Ezek a rétegek olyan egyedi kódot és nyílt forráskódú technológiákat tartalmaznak, amelyek évtizedek óta folyamatos fejlesztés alatt állnak.
Android számos vállalat hatalmas együttműködési erőfeszítései és befektetései révén fejlesztették ki. Az Android fejlesztés mögött álló fő cég a Google. Más cégek között vannak olyan készülékgyártók, mint a Samsung, LG; processzorgyártók, mint például az Intel és az ARM, de hogy csak néhányat említsünk.
Amikor beszélünk Android építészet alatt azt értjük, hogy a Android A rendszert megtervezték, rétegekre szegmentálták, és úgy építették fel, hogy rendszerként működjön. Egy ilyen összetett rendszer felépítése gondos strukturálást igényel, hogy biztosítsa az összes komponens összetartó együttműködését. Architektúrája biztosítja, hogy a sok összetevő összeomlás nélkül működjön.
Rétegek
Az alábbiakban bemutatjuk azokat a rétegeket, amelyek a Android a diagramon feltüntetett architektúra:
- Alkalmazás
- Alkalmazási keret
- Android Futásidejű és központi könyvtárak
- Linux Kernel
A mobileszközökhöz való operációs rendszer fejlesztése számos kihívással jár. Ennek a réteges architektúrának a használata biztosítja, hogy a különböző problémákat különböző szinteken lebontják és megoldják.
A réteges architektúra segít elkülöníteni a problémákat, és biztosítja, hogy az androidos szoftverfejlesztőknek ne kelljen minden alkalommal alacsony szintű problémákkal foglalkozniuk. Ehelyett arra összpontosíthatnak, hogy üzleti értéket biztosítsanak az általuk dolgozó rétegnek megfelelően.
A fejlesztők azon dolgoznak, hogy az alkalmazásoknak ne kelljen aggódniuk az alkalmazási keretrendszer megvalósítása miatt. Ez a munka az Application keretrendszeren dolgozó rendszerfejlesztőkre van bízva.
Az Application Framework fejlesztői a fejlesztői tapasztalaton dolgoznak, és nem kell aggódniuk az alacsony szintű illesztőprogramok miatt. Az alacsony szintű rendszermérnökök teljes mértékben az alacsony szintű összetevőkre összpontosíthatnak, mint például a Bluetooth vagy az audio-illesztőprogramok és hasonlók.
Androidréteges felépítése lehetővé teszi a hibajavításokat vagy fejlesztéseket tartalmazó frissítések alkalmazását az egyes rétegekre. Ez biztosítja, hogy a rétegek közötti változtatások ne zavarják egymást. Ez lehetővé teszi az operációs rendszer különböző szintjén dolgozók számára, hogy az új frissítések és kiadások során akadályozzák egymást.
Android Alkalmazás
Ez az a réteg, amellyel a végfelhasználók interakcióba lépnek. Ezen a rétegen teszik közzé az alkalmazásfejlesztők az alkalmazásaikat a futtatáshoz.
Android, alapértelmezés szerint egy sor olyan alkalmazást tartalmaz, amelyek az androidos készülékeket offsetből is használhatóvá teszik.
- Otthon: A kezdőlap bekapcsolva Android a gyakran használt alkalmazások indítóikonjaiból áll, amelyekhez a végfelhasználó gyorsan hozzá szeretne férni. Az alkalmazásokat az alkalmazások indítóira kattintva indíthatja el. A képernyő legtetején olyan widgetek találhatók, amelyek a hálózatot, az akkumulátor töltöttségi szintjét, a dátumot és az időt mutatják.
- Elérhetőségek: Android, alapértelmezés szerint lehetőséget biztosít a névjegyek tárolására és visszakeresésére. A kapcsolattartási adatokat más alkalmazások is megosztják a funkcionalitás javítása érdekében.
- Üzenetek: Android lehetőséget biztosít SMS-ek küldésére és fogadására.
- E-mail: Android natív támogatással érkezik az e-mail szolgáltatásokhoz. Egy Android a készülékhez Gmail fiók szükséges. A Gmail beállítása más e-mail-függő összetevőket is bekapcsol Android eszközöket. Néhány e-mail-függő funkció biztonsági és helyreállítási mechanizmusokat tartalmaz. Egy másik e-mail-függő funkció a Play Áruházhoz való hozzáférés, amely egy piactér Android alkalmazásokat.
- Böngésző: Android alapértelmezett böngészővel érkezik.
- Értesítési fiók: A képernyőn lefelé csúsztatva megjelenik az értesítési fiók. Olyan alkalmazáseseményeket biztosít, amelyekről a felhasználónak tudnia kell. Az értesítés felett néhány gyakran használt eszközbeállításhoz mutató parancsikonok találhatók, amelyeket a felhasználók válthatnak. Ezek a beállítások közé tartoznak a különféle hardverösszetevők, például a Bluetooth és a Wifi be- és kikapcsolása. Ha hosszan lenyomja ezeket az eseményeket, akkor a konfigurációs oldalukra léphetünk.
Ezt a réteget felhasználói szintnek is nevezik, ellentétben az alábbi rétegekkel, amelyek többnyire alkalmazásfejlesztésre vannak hangolva. Az alkalmazásfejlesztők ezen a rétegen hozzák létre és testreszabják alkalmazásaik élményeit. Az alkalmazási réteg alatti rétegeket az alkalmazásfejlesztők nem szabják testre. A rendszerréteg részének tekintendők. Ezeket a rétegeket az eszközgyártók, a Google Android csapatai vagy harmadik felek szabják testre, akik szeretnék használni a Android termékük vagy kutatásuk forráskódja.
Alkalmazási keret
A Android Az operációs rendszer feltárja a mögöttes könyvtárakat és funkciókat Android olyan készüléket, amely a Java API. Ez az úgynevezett Android keretrendszer. A keret biztonságos és egységes felhasználási módot kínál Android eszköz erőforrások.
1) Tevékenységvezető
Az alkalmazások a Android tevékenységkomponens az alkalmazás belépési pontjának bemutatásához. Android A tevékenységek azok az összetevők, amelyekben az alkalmazás felhasználói interakcióba lépnek a felhasználói felülettel. Ahogy a végfelhasználók interakcióba lépnek a Android eszközt indítanak, leállítanak, és oda-vissza ugrálnak számos alkalmazáson keresztül. Minden egyes navigációs esemény számos tevékenység aktiválását és deaktiválását váltja ki a megfelelő alkalmazásokban.
A Android Az ActivityManager felelős a kiszámítható és következetes viselkedésért az alkalmazásváltások során. Az ActivityManager lehetőséget biztosít az alkalmazások készítőinek, hogy alkalmazásaik reagáljanak, amikor a Android Az operációs rendszer globális műveleteket hajt végre. Az alkalmazások meghallgathatják az olyan eseményeket, mint például az eszköz elforgatása, az alkalmazások memóriahiány miatti megsemmisülése, az alkalmazások életlensége stb.
Néhány példa arra, hogy az alkalmazások hogyan reagálhatnak ezekre az átmenetekre: a tevékenység szüneteltetése a játékban, a zenelejátszás telefonhívás közbeni leállítása.
2) Ablakkezelő
Android Meg tudja határozni a képernyőinformációkat az alkalmazások ablakainak létrehozásához szükséges követelmények meghatározásához. Windows ezek azok a helyek, ahol megtekinthetjük alkalmazásunk felhasználói felületét. Android az Ablakkezelőt használja, hogy ezeket az információkat az alkalmazásoknak és a rendszernek futás közben biztosítsa, hogy alkalmazkodni tudjanak az eszköz működési módjához.
A Window Manager testreszabott alkalmazásélményt nyújt. Az alkalmazások a teljes képernyőt kitölthetik a magával ragadó élmény érdekében, vagy megoszthatják a képernyőt más alkalmazásokkal. Android ezt azáltal teszi lehetővé, hogy minden egyes alkalmazáshoz több ablakot engedélyez.
3) Helykezelő
híd Android Az eszközök olyan GPS-eszközökkel vannak felszerelve, amelyek műholdas információk segítségével képesek meghatározni a felhasználó helyzetét, amely akár méteres pontossággal is elérhető. A programozók helymeghatározási engedélyt kérhetnek a felhasználóktól, megadhatják a helymeghatározást és a tudatos tapasztalatokat.
Android vezeték nélküli technológiákat is képes használni a helyadatok további gazdagításához és a lefedettség növeléséhez, ha az eszközök zárt térben vannak. Android ezeket a funkciókat a Location-Manager égisze alatt biztosítja.
4) Telefonos menedzser
híd Android készülékek elsődleges szerepet töltenek be a telefonálásban. Android a TelephoneManager segítségével hardver- és szoftverkomponenseket kombinál a telefonszolgáltatások biztosítására. A hardverelemek közé tartoznak a külső alkatrészek, például a SIM-kártya, valamint az eszköz részei, például a mikrofon, a kamera és a hangszórók. A szoftverösszetevők olyan natív összetevőket tartalmaznak, mint a tárcsázó, telefonkönyv, csengőhang-profilok. A TelephoneManager segítségével a fejlesztő kiterjesztheti vagy finomhangolhatja az alapértelmezett hívási funkciót.
5) Erőforrás-kezelő
Android Az alkalmazás általában nem csak kódot tartalmaz. Más erőforrásaik is vannak, például ikonok, hang- és videofájlok, animációk, szöveges fájlok és hasonlók. Android segít abban, hogy ezekhez az erőforrásokhoz hatékonyan és gyorsan hozzáférjenek. Azt is biztosítja, hogy a megfelelő erőforrásokat a végfelhasználókhoz eljuttassák. Például a megfelelő nyelvű szövegfájlokat használja a rendszer az alkalmazások mezőinek kitöltésekor.
6) Rendszer megtekintése
Android lehetőséget biztosít az alkalmazásokkal való interakcióhoz szükséges közös vizuális összetevők egyszerű létrehozására is. Ezek az összetevők közé tartoznak a widgetek, például a gombok, a képtartók, például az ImageView, az elemek listájának megjelenítésére szolgáló komponensek, például a ListView és még sok más. Az összetevők előre elkészítettek, de testreszabhatók az alkalmazásfejlesztői igényekhez és a márkaépítéshez is.
7) Értesítéskezelő
A tájékoztatásért az Értesítéskezelő felelős Android alkalmazásesemények felhasználói. Ezt úgy éri el, hogy vizuális, hang- vagy rezgésjeleket ad a felhasználóknak, vagy ezek kombinációját, amikor egy esemény bekövetkezik. Ezeknek az eseményeknek külső és belső kiváltó okai vannak. Néhány példa a belső triggerekre az alacsony akkumulátor-állapot-események, amelyek az alacsony akkumulátor töltöttséget jelző értesítést váltanak ki. Egy másik példa a felhasználó által megadott események, például egy riasztás. Néhány példa a külső triggerekre új üzenetek vagy új wifi-hálózatok észlelése.
Android lehetőséget biztosít a programozók és a végfelhasználók számára az értesítési rendszer finomhangolására. Ez segíthet annak garantálásában, hogy a számukra és jelenlegi környezetüknek leginkább megfelelő módon küldhetnek és fogadhatnak értesítési eseményeket.
8) Csomagkezelő
Android hozzáférést biztosít a telepített alkalmazásokkal kapcsolatos információkhoz is. Android nyomon követi az alkalmazásinformációkat, például a telepítési és eltávolítási eseményeket, az alkalmazások által kért engedélyeket és az erőforrás-kihasználást, például a memóriafelhasználást.
Ez az információ lehetővé teheti a fejlesztők számára, hogy alkalmazásaik aktiválják vagy deaktiválják a funkciókat a kísérőalkalmazások által bemutatott új funkcióktól függően.
9) Tartalomszolgáltató
Android szabványosított módot kínál az adatok megosztására az eszközön lévő alkalmazások között a tartalomszolgáltató segítségével. A fejlesztők használhatják a tartalomszolgáltatót arra, hogy adatokat tegyenek közzé más alkalmazások számára. Például kereshetővé tehetik az alkalmazás adatait külső keresőalkalmazásokból. Android maga ugyanazt a rendszert használja fel olyan adatokat, mint a naptáradatok, névjegyadatok és hasonlók.
Android Futásidejű és központi/natív könyvtárak
1) Android Runtime
Android jelenleg használja Android Runtime (ART) az alkalmazáskód végrehajtásához. Az ART-t a Dalvik Runtime előzi meg, amely fejlesztői kódot fordított Dalvik végrehajtható fájlokra (Dex fájlok). Ezek a végrehajtási környezetek az Android platformra lettek optimalizálva, figyelembe véve a mobileszközök processzor- és memóriakorlátait.
A futási idő lefordítja a programozók által írt kódot gépi kódra, amely számításokat végez, és android keretrendszer-komponenseket használ a funkcionalitás biztosítására. Android több alkalmazást és rendszerkomponenst tárol, amelyek mindegyike fut a folyamataiban.
Alapkönyvtárak
Ebben a szegmensben megvitatunk néhány alapvető könyvtárat, amelyek jelen vannak a Android operációs rendszer.
2) MediaFramework
Android natívan támogatja a népszerű médiakodekeket is, megkönnyítve ezzel a számítógépen létrehozott alkalmazások számára Android platform multimédiás komponensek használatára/lejátszására a dobozból.
3) SQLite
Android is van egy SQLite adatbázis amely lehetővé teszi az alkalmazások számára, hogy nagyon gyors natív adatbázis-funkciókkal rendelkezzenek anélkül, hogy harmadik féltől származó könyvtárak kellenek.
4) Freetype
Android előre telepített gyors és rugalmas font motorral érkezik. Ez lehetővé teszi az alkalmazásfejlesztők számára, hogy stílust alakítsanak ki alkalmazásaik összetevőit, és olyan gazdag élményt nyújtsanak, amely kommunikálja a fejlesztő szándékát.
5) OpenGL
Android az OpenGL grafikus rendszerrel is jár. Ez egy C könyvtár, ami segít Android hardverkomponensek használata a 2D és 3D grafika valós idejű megjelenítéséhez.
6) SSL
Android beépített biztonsági réteggel is rendelkezik, amely lehetővé teszi a biztonságos kommunikációt az alkalmazások között Android és egyéb eszközök, például szerverek, egyéb mobileszközök, útválasztók 6.
7) SGL
Android egy alacsony szintű kóddal megvalósított grafikus könyvtárral érkezik, amely hatékonyan jeleníti meg a grafikát az Android platform számára. A magasabb szintű komponensekkel működik együtt Android keret Android grafikus csővezeték.
8) Libc
A mag Android C és nyelven írt könyvtárakat tartalmaz C++, amelyek beágyazott használatra készült alacsony szintű nyelvek, amelyek segítenek a teljesítmény maximalizálásában. A Libc lehetőséget biztosít arra, hogy az alacsony szintű rendszerfunkciókat, például a szálakat, socketeket, IO-t és hasonlókat felfedje ezeknek a könyvtáraknak.
9) Webkit
Ez egy nyílt forráskódú böngészőmotor, amely a böngészők építésének alapja. Az alapértelmezett Android A 4.4-es verzió előtti böngésző KitKat ezt használja weboldalak megjelenítésére. Lehetővé teszi az alkalmazásfejlesztők számára, hogy webes összetevőket jelenítsenek meg a nézetrendszerben a WebView használatával. Ez lehetővé teszi az alkalmazások számára, hogy webes összetevőket integráljanak funkcióikba.
10) Felületkezelő
A felületkezelő felelős az alkalmazási képernyők zökkenőmentes megjelenítéséért. Ezt úgy teszi, hogy 2D és 3D grafikát készít rendereléshez. Ezt a képernyőn kívüli puffereléssel is lehetővé teszi.
Linux Kernel
A gyökérkomponens a Android A rendszer a Linux Kernel. Ez az alapdarab, amely lehetővé teszi mindazt Androidfunkcionalitása.
A Linux Kernel egy csatában tesztelt szoftver, amelyet a fejlesztés során használtak operációs rendszer széles körű eszközökhöz, a szuperszámítógépektől a kis kütyükig. Korlátozott feldolgozási képességekkel rendelkezik, mint például a tárgyak internete (IoT) kis hálózati moduljai.
A Linux Kernel úgy módosítható, hogy megfeleljen az eszköz specifikációinak, hogy a gyártók elkészíthessék Android különböző képességekkel rendelkező eszközök a felhasználói élményhez igazodva.
Ami a Android, a Kernel számos alapvető funkcióért felelős, beleértve, de nem kizárólagosan, a következőket:
- Eszközmeghajtók
- Memóriakezelés
- Folyamatmenedzsment
Bővítsünk néhány funkciót:
Eszközmeghajtók
A Linux kernel tartalmazza azokat az illesztőprogramokat, amelyek szükségesek ahhoz, hogy az operációs rendszer különböző hardverkomponensekkel működjön. Ezek az illesztőprogramok szabványos interfészt biztosítanak, amellyel a különböző gyártóktól származó hardverkomponensek működhetnek.
Ez lehetővé teszi az eszközgyártók számára, hogy különféle összetevőket, például Bluetooth-komponenseket, Wifi-komponenseket, kamerakomponenseket szerezzenek be. Mindaddig, amíg a gyártók megfelelnek a Android szabványos specifikációk, az integráció zökkenőmentes.
1) USB meghajtó
A Linux is biztosítja Android USB-eszközökkel való interfész eszközzel. A modern eszközök különféle USB-portokkal rendelkeznek, beleértve az USB 2.0-t és az USB új verzióit, beleértve az USB-C-t is. Ezek az illesztőprogramok lehetővé teszik az USB-port használatát a töltéshez, élő adatok, például naplók átviteléhez Android eszközöket, és interakcióba lép az Androiddal fájlrendszer.
2) Bluetooth illesztőprogram
A Linux Kernel támogatja a Bluetooth hardverkomponensekkel való interfészeket. Módot biztosít a támogatott Bluetooth rádiófrekvenciákról kapott adatok olvasására és írására. Egy sor felszerelést is biztosít a Android a Bluetooth beállításához.
3) Wifi illesztőprogram
A Linux kernel illesztőprogramokat biztosít a WiFi hálózati hardverösszetevők integrálásához. A mobileszközökbe ágyazott WiFi komponensek lehetővé teszik Android eszközök a wifi hálózatokhoz való csatlakozáshoz. Az illesztőprogram lehetővé teszi, hogy a wifi összetevők wifi hálózatokat sugározzanak és hotspotokat hozzanak létre.
4) Display Driver
Android lehetővé teszi a kijelző komponensekkel való interfészét. A legtöbb eszköz esetében az interfész komponens egy LCD érintőképernyő. Lehetővé teszi a pixelek konfigurálásának és rajzolásának támogatását.
5) Audio Driver
Android Az eszközök általában hardverkomponensekkel rendelkeznek az audio bemenethez és kimenethez. A kernelben található audio-illesztőprogramok lehetővé teszik a Android rendszer az ezektől a komponensektől kapott hang használatához, és hangkimenetet is előállít.
6) Power Manager
híd Android Az eszközöket akkor használják, ha ki vannak húzva a konnektorból. Így használatuk nagy részében akkumulátoroktól függenek. A Linux Kernel energiagazdálkodási rendszerrel érkezik, amely úgy konfigurálható, hogy megfeleljen az azt használó eszközök igényeinek.
Android Az operációs rendszer az energiakezelőt használja az eszköz más összetevőinek energiatudatossá tételére. Ezt a különféle áramellátással kapcsolatos állapotok sugárzásával teszi. Ezek az állapotok a készenléti, alvó és az alacsony akkumulátor töltöttségi állapotok. Tovább Android, az energiakezelő alapértelmezés szerint alvó üzemmódba van állítva a maximális akkumulátor-élettartam biztosítása érdekében.
A Power Manager lehetővé teszi az alkalmazások számára, hogy reagáljanak a különböző energiagazdálkodási módokra. Az alkalmazások is módosíthatják viselkedésüket, hogy megfeleljenek az eszköz aktuális energiaállapotának.
Egy alkalmazás kérheti az alapértelmezett energiagazdálkodási irányelvek módosítását is. Az alkalmazások elérhetik a kívánt funkcionalitást, például a hardverösszetevők aktívan tartását. Példa erre a képernyő aktív tartása könyv olvasása közben, hogy a felhasználót ne zavarják meg. Egy másik példa az audio komponensek bekapcsolva tartása zenehallgatás közben a háttérben.
7) Flash memória
híd Android eszközök flash memóriát használnak tárolási eszközként. A flash memória gyors és kevesebb helyet foglal, így tökéletes kis eszközökhöz. A Linux kernel lehetőséget biztosít arra Android eszközök a flash memóriába való olvasáshoz és íráshoz. Eszközt biztosít a memória particionálására oly módon, hogy az operációs rendszer és más alkalmazások könnyen és hatékonyan megoszthassák a memóriaerőforrást.
8) Kötőanyag
Android számos alkalmazást és rendszerelemet tartalmaz, amelyek mindegyike fut a folyamataiban. A legtöbb esetben ezeket a folyamatokat el kell különíteni egymástól az interferencia és az adatsérülés elkerülése érdekében. Ennek ellenére vannak olyan esetek, amikor adatokat szeretnénk átadni egyik folyamatból a másikba.
A Linux kernel adatmegosztási funkciókat tesz lehetővé azáltal, hogy kötőanyag-illesztőprogramokat biztosít. A Binder meghajtók lehetővé teszik a folyamatok közötti kommunikációt, az IPC-t. Az IPC folyamatok használatával más folyamatokat fedezhet fel és információkat oszthat meg.
Memóriakezelés
A Linux Kernel másik feladata a memóriakezelés. Ahogy a különböző alkalmazások futnak, a kernel biztosítja, hogy az általuk használt memóriaterület ne ütközzen egymással és ne írja felül egymást.
Azt is segíti, hogy minden futó alkalmazás megfelelő memóriát kapjon a működéshez, így egyetlen alkalmazás sem foglal túl sok helyet.
Folyamatmenedzsment
Minden alkalmazás Android folyamatban fut. A kernel a folyamatok kezeléséért is felelős. Ez azt jelenti, hogy felelős a folyamatok létrehozásáért, szüneteltetéséért, leállításáért, leállításáért vagy leállításáért.
A kernel különféle funkciókat tesz lehetővé, mint például több folyamat egyidejű futtatása, folyamatok közötti kommunikáció, folyamatok futtatása a háttérben stb.
Mivel minden folyamatnak saját memóriaterületre van szüksége a megfelelő működéshez, a kernel biztosítja, hogy az egyes folyamatokhoz kiosztott memóriaterületek védve legyenek a többi folyamattól. Azt is biztosítja, hogy a források, mint RAM A folyamatok számára kiosztott összegek felszabadulnak, amikor a folyamatokat leállítják.
A Linux kernel felelős a munka elosztásáért is az eszközben lévő processzorokhoz. Ez lehetővé teszi a több maggal rendelkező eszközök teljesítményének maximalizálását, mivel a különböző alkalmazások folyamatai más-más magon futnak majd.
A Linux kernel több feladatot lát el a motorháztető alatt, beleértve a biztonság érvényesítését.
Összegzésként
- Android az építészet rétegekbe szerveződik.
- Minden réteg egyedi problémacsoportot old meg.
- A végfelhasználók interakcióba lépnek az Alkalmazásrétegen lévő alkalmazásokkal
- Az alkalmazásfejlesztők olyan alkalmazásokat fejlesztenek, amelyeket az Alkalmazási rétegen kell használni. Ezt az Alkalmazási keretrendszer által biztosított eszközök és absztrakciók segítségével teszik.
- Android A keretréteg egyszerűsíti az alacsony szintű összetevők elérését azáltal, hogy API-t hoz létre a natív könyvtárak felett.
- Android A Runtime és Core-Libraries alacsony szintű nyelveket használ a mobileszközökhöz való optimalizálás mellett. Ez biztosítja, hogy az alkalmazásfejlesztők által írt kódok zökkenőmentesen futnak Android eszközkorlátok.
- Alján a Android szoftververem a Linux kernel. Interfész a szokásos hardverkomponensekkel Android eszközök.