Tesztek és áttekintések

Android operációs rendszer. Mi az az Android? Az Android platformon működnek

Cikkek és Lifehackek

Ma már nehéz olyan embert találni, aki ne szeretné magát „okos” technológiával körülvenni. Egyre gyakrabban hallható a „telefon nélkül olyan, mint kéz nélkül”, és általában lehetetlen elképzelni az életet lejátszó, laptop vagy más népszerű kütyü nélkül.

Ezért mindenkinek tudnia kell a modern elektronikai piacon megjelenő új termékekről. Például nem mindenki tudja, mi az Android platform, de megpróbáljuk kitalálni.

Mi az az Android

  • Az Android egy olyan operációs rendszer, amely képes vezérelni egy mobil eszközt (telefon, táblagép, okostelefon). Az Android platformot a Linux kernel alapján fejlesztették ki.
  • Ez annak köszönhető, hogy 2005-ben a Google felvásárolta az Android Inc-t, ezzel leányvállalatává téve az azonos nevű platformok gyártását mobileszközökhöz. Azóta a platform csak fejlesztés alatt áll.
  • Az Android gyakran kiadja programjának új verzióit. Figyelemre méltó az a tény, hogy mindegyik nevének első betűi új verzió megfelelnek a latin ábécé betűinek.
  • Ma az Android platform a második helyen áll a népszerűségben a világon, csak a működés után iOS rendszer, amelyet iPhone-ra fejlesztettek ki.

Mire való az Android?

  • Mint ismeretes, az operációs rendszer minden elektronikus eszköz „agya”, amelyre minden emberi parancs végrehajtásához szükség van.
  • Ennek megfelelően az android egy mobileszközben ülő virtuális robot, amely az eszközön belüli összes folyamat végrehajtásáért felelős.
  • Ennek a platformnak az az előnye, hogy az Android kényelmes és nagyon intuitív kezelőfelülettel rendelkezik, valamint rugalmas és többfeladatos rendszerrel rendelkezik, amely lehetővé teszi több alkalmazás egyidejű futtatását és a beállításokkal való kísérletezést.
  • Többek között számos, kifejezetten Android platformra készült alkalmazás nyújt igazán korlátlan lehetőségeket a rendszer boldog felhasználóinak.
  • Hiszen ezeknek az alkalmazásoknak a segítségével lehet vásárlást fizetni, fotózni, filmeket nézni vagy könyveket olvasni.
  • Miután megértette, mi az Android, arra a következtetésre juthatunk, hogy ez a platform erre készült kreatív emberek, mert két egyforma mobileszköz teljesen másképp nézhet ki.
  • Az Android lehetővé teszi, hogy mindig legyen nálad minden – személyi fitneszedző, orvos, játék vagy tévé, ami a lehető legkényelmesebbé teszi az emberi életet.

Gondolkozott már azon, hogyan működik a fastboot vagy az ADB? Vagy miért van alatta egy okostelefon Android vezérlés szinte lehetetlen téglává alakítani? Vagy talán már régóta szeretné tudni, hol rejlik az Xposed keretrendszer varázsa, és miért van szükség a /system/etc/init.d rendszerindító szkriptekre? Mi a helyzet a helyreállítási konzollal? Ez az Android része vagy önmagában való dolog, és miért nem alkalmas a rendszeres helyreállítás harmadik fél firmware-ének telepítésére? Mindezekre és sok más kérdésre választ talál ebben a cikkben.

Hogyan működik az Android

Ismerje meg a rejtett lehetőségeket szoftverrendszerek működési elvük megértésével megteheti. Egyes esetekben ez nehezen kivitelezhető, hiszen előfordulhat, hogy a rendszerkód zárva van, Android esetén viszont a teljes rendszert kívül-belül tanulmányozhatjuk. Ebben a cikkben nem fogok beszélni az Android minden árnyalatáról, és csak arra összpontosítok, hogyan indul az operációs rendszer, és milyen események történnek a bekapcsológomb megnyomása és az asztal megjelenése között.

Útközben elmagyarázom, mit változtathatunk ezen az eseményláncon, és hogyan használják az egyedi firmware-fejlesztők ezeket a képességeket olyan dolgok megvalósítására, mint az operációs rendszer paramétereinek hangolása, az alkalmazások tárhelyének bővítése, a swap csatlakoztatása, a különféle testreszabások és még sok más. Mindezek az információk felhasználhatók saját firmware létrehozására, valamint különféle hackek és módosítások végrehajtására.

Első lépés. ABOOT és partíciós tábla

Minden az elsődleges rendszerbetöltővel kezdődik. A tápfeszültség bekapcsolása után a rendszer végrehajtja az eszköz állandó memóriájában tárolt bootloader kódot. Ezután átadja a vezérlést a gyorsindítási protokoll beépített támogatásával rendelkező aboot bootloadernek, de a mobil chip vagy okostelefon/táblagép gyártójának jogában áll bármelyik másik indítóbetöltőt választani. Például a Rockchip saját rendszerbetöltőt használ, amely nem kompatibilis a gyorsindítással, és szabadalmaztatott eszközöket igényel a flash és a kezelés.

A fastboot protokoll viszont egy olyan rendszer, amely a rendszerbetöltőt PC-ről kezeli, és lehetővé teszi olyan műveletek végrehajtását, mint a rendszerbetöltő feloldása, új kernel felvillantása és helyreállítása, firmware telepítése és még sok más. A fastboot létjogosultsága az, hogy egy okostelefont vissza lehessen állítani az eredeti állapotába olyan helyzetben, amikor minden más eszköz kudarcot vall. A Fastboot akkor is a helyén marad, ha a kísérletek eredményeként az összes Androidot és helyreállítást tartalmazó NAND memóriapartíciót töröl az okostelefonjáról.

Miután megkapta az irányítást, az aboot ellenőrzi a partíciós táblát, és átadja az irányítást a rendszermagnak, amely a boot nevű partícióba került, majd a kernel kivonja a RAM-képet ugyanarról a partícióról a memóriába, és megkezdi az Android vagy a helyreállítási konzol betöltését. Az Android-eszközök NAND memóriája hat feltételesen szükséges részre oszlik:

  • boot - tartalmazza a kernelt és a RAM-lemezt, általában körülbelül 16 MB méretű;
  • helyreállítás - helyreállítási konzol, egy kernelből, egy konzolalkalmazás-készletből és egy beállításfájlból áll, mérete 16 MB;
  • rendszer - Androidot tartalmaz, a modern eszközökben a mérete legalább 1 GB;
  • gyorsítótár - gyorsítótárazott adatok tárolására szolgál, az OTA frissítés során a firmware mentésére is szolgál, ezért mérete hasonló a rendszerpartíció méretéhez;
  • felhasználói adatok - beállításokat, alkalmazásokat és felhasználói adatokat tartalmaz, az összes fennmaradó NAND memóriaterület hozzá van rendelve;
  • misc - tartalmaz egy zászlót, amely meghatározza, hogy a rendszer milyen módban induljon el: Android vagy helyreállítás.

Rajtuk kívül lehetnek más szakaszok is, de az általános jelölést az okostelefon tervezési szakaszában határozzák meg, és aboot esetén a rendszerbetöltő kódba varrják. Ez azt jelenti, hogy: 1) a partíciós tábla nem törölhető, mivel mindig visszaállítható a fastboot oem format paranccsal; 2) a partíciós tábla megváltoztatásához fel kell oldania és újra kell töltenie a rendszertöltőt új paraméterekkel. Vannak azonban kivételek e szabály alól. Például ugyanannak a Rockchipnek a rendszerbetöltője a NAND memória első blokkjában tárol információkat a partíciókról, így nem szükséges a rendszerbetöltő flashelése a változtatáshoz.

A vegyes rész különösen érdekes. Feltételezhető, hogy eredetileg a fő rendszertől független, de különböző beállítások tárolására készült pillanatnyilag csak egy célra használható: hogy jelezze a rendszerbetöltőnek, hogy melyik partícióról kell betölteni a rendszert - rendszerindítás vagy helyreállítás. Ezt a funkciót különösen a ROM Manager alkalmazás használja a rendszer automatikus újraindítására a helyreállításhoz a firmware automatikus telepítésével. Ennek alapján épül fel az Ubuntu Touch dual boot mechanizmus, amely az Ubuntu rendszerbetöltőt visszaállítja, és lehetővé teszi annak szabályozását, hogy melyik rendszer induljon el legközelebb. Törölve a misc partíciót - Android betölt, adatokkal feltöltve - helyreállítás betöltődik... vagyis Ubuntu Touch.

Második lépés. Boot rész

Ha a misc szakasz nem rendelkezik helyreállítási rendszerindítási jelzővel, az aboot átadja az irányítást a rendszerindító részben található kódra. Ez nem más, mint a Linux kernel; a szakasz elején található, majd közvetlenül utána egy cpio és gzip archiválókkal csomagolt RAM lemezkép, amely tartalmazza az Android működéséhez szükséges könyvtárakat, az inicializálási rendszert és egyéb eszközöket. A rendszerindító partíción nincs fájlrendszer, a kernel és a RAM-lemez egyszerűen követi egymást. A RAM lemez tartalma:

  • data - könyvtár az azonos nevű partíció csatlakoztatásához;
  • dev - eszközfájlok;
  • proc - a procfs ide van felszerelve;
  • res - képkészlet a töltőhöz (lásd alább);
  • sbin - segédprogramok és démonok halmaza (például adbd);
  • sys - a sysfs ide van csatolva;
  • system - könyvtár a rendszerpartíció csatlakoztatásához;
  • töltő - alkalmazás a töltési folyamat megjelenítésére;
  • build.prop - rendszerbeállítások;
  • init - inicializálási rendszer;
  • init.rc - inicializálási rendszerbeállítások;
  • ueventd.rc - az uventd démon beállításai az initben.

Ez, mondhatni, a rendszer váza: egy könyvtárkészlet a fájlrendszerek NAND-memóriapartíciókról való összekapcsolására, valamint egy inicializálási rendszer, amely a rendszerindítás többi részét is ellátja. A központi elem itt az init alkalmazás és annak init.rc konfigurációja, amelyről a későbbiekben részletesen szólok. Addig is felhívnám a figyelmet a töltő és az ueventd.rc fájlokra, valamint az sbin, proc és sys könyvtárakra.

A töltőfájl egy kis alkalmazás, amelynek egyetlen feladata az akkumulátor ikon megjelenítése a képernyőn. Semmi köze az Androidhoz, és akkor használatos, ha az eszköz kikapcsolt állapotban csatlakozik a töltőhöz. Ebben az esetben az Android nem töltődik be, és a rendszer egyszerűen betölti a kernelt, csatlakoztatja a RAM-lemezt és elindítja a töltőt. Utóbbi egy akkumulátor ikont jelenít meg, amelynek képe minden lehetséges állapotban közönséges PNG-fájlokban tárolódik a res könyvtárban.

Az ueventd.rc fájl egy olyan konfiguráció, amely meghatározza, hogy a rendszerindítás során a sys könyvtárban mely eszközfájlokat kell létrehozni. Kernel alapú Linux rendszerek A hardverhez való hozzáférés a dev könyvtáron belüli speciális fájlokon keresztül történik, ezek létrehozásáért az Androidban az init részét képező ueventd démon felelős. Normál helyzetben működik automatikus üzemmód, elfogadja a parancsokat a fájlok kernelből történő létrehozásához, de néhány fájlt egymástól függetlenül kell létrehozni. Az ueventd.rc oldalon vannak felsorolva.

A készleten lévő Android sbin könyvtár általában nem tartalmaz mást, mint az adbd-t, vagyis az ADB démont, ami a PC-ről történő rendszer hibakereséséért felelős. Az operációs rendszer indításának korai szakaszában fut, és lehetővé teszi az észlelést lehetséges problémákat az operációs rendszer inicializálási szakaszában. IN egyedi firmware ebben a könyvtárban egy csomó más fájl található, például az mke2fs, amelyekre szükség lehet, ha a partíciókat újra kell formázni ext3/4-re. Emellett a modderek gyakran elhelyeznek egy BusyBox-ot, amivel több száz Linux-parancsot hívhatunk meg.

A proc könyvtár szabványos a Linux számára, a rendszerindítás következő szakaszában az init csatlakozik hozzá a procfs, egy virtuális fájlrendszer, amely hozzáférést biztosít a rendszer összes folyamatáról. A rendszer összekapcsolja a sysfs-t a sys könyvtárral, amely hozzáférést biztosít a hardverrel és annak beállításaival kapcsolatos információkhoz. A sysf használatával például alvó állapotba helyezheti az eszközt, vagy módosíthatja a használt energiatakarékos algoritmust.

A build.prop fájl az alacsony szintű Android-beállítások tárolására szolgál. Később a rendszer visszaállítja ezeket a beállításokat, és felülírja azokat a jelenleg nem elérhető system/build.prop fájl értékeivel.


Kivonatok a szövegből

  • A Fastboot akkor is a helyén marad, ha a kísérletek eredményeként az összes NAND memóriarész tartalmát törli okostelefonjáról
  • A helyreállítási rész teljesen önellátó, és egy miniatűr operációs rendszert tartalmaz, amely semmilyen módon nem kapcsolódik az Androidhoz
  • Az fstab fájl kis módosításával rákényszeríthetjük az init-et, hogy a memóriakártyáról indítsa el a rendszert

Második lépés, alternatíva. Helyreállítási szakasz

Ha a Misc részben be van állítva a helyreállítási rendszerindítási jelző, vagy a felhasználó bekapcsolja az okostelefont a hangerőcsökkentő gomb lenyomva tartásával, az aboot átadja a vezérlést a helyreállítási szakasz elején található kódra. A rendszerindító partícióhoz hasonlóan ez is tartalmazza a kernelt és egy RAM-lemezt, amely a memóriába kerül, és a fájlrendszer gyökerévé válik. A RAM-lemez tartalma azonban itt némileg eltér.

Ellentétben a rendszerindító partícióval, amely átmeneti kapcsolatként működik az operációs rendszer betöltésének különböző szakaszai között, a helyreállítási partíció teljesen önellátó, és egy miniatűr operációs rendszert tartalmaz, amely semmilyen módon nem kapcsolódik az Androidhoz. A helyreállításnak saját magja, saját alkalmazáskészlete (parancsai) és saját felülete van, amely lehetővé teszi a felhasználó számára a szolgáltatási funkciók aktiválását.

Egy szabványos (készlet) helyreállításban általában csak három ilyen funkció van: az okostelefon gyártójának kulcsával aláírt firmware telepítése, törlés és újraindítás. A módosított harmadik féltől származó helyreállítások, mint például a ClockworkMod és a TWRP, sokkal több funkcióval rendelkeznek. Formázhatják a fájlrendszereket, telepíthetik a tetszőleges kulccsal aláírt firmware-t (értsd: egyéni), fájlrendszereket csatlakoztathatnak más partíciókra (OS hibakeresési célokra), és tartalmazhatnak szkript-támogatást, amely lehetővé teszi a firmware folyamatának automatizálását és sok más funkciót.

A szkriptek használatával például megbizonyosodhat arról, hogy a rendszerindítás után a helyreállítás automatikusan megtalálja a szükséges firmware-t a memóriakártyán, telepíti azokat, és újraindul az Androidon. Ezt a funkciót a ROM Manager, az automatikus flasher és a automatikus frissítés CyanogenMod és más firmware.

Az egyéni helyreállítás támogatja a /system/addon.d/ könyvtárban található biztonsági mentési szkripteket is. A villogás előtt a helyreállítás ellenőrzi a szkripteket, és végrehajtja azokat a firmware felvillantása előtt. Az ilyen szkripteknek köszönhetően a gapp-ok nem tűnnek el egy új firmware-verzió telepítése után.

fastboot parancsok

A gyorsindítás eléréséhez telepítenie kell az Android SDK-t, csatlakoztatnia kell okostelefonját a számítógépéhez kábel segítségével, és mindkét hangerőgomb lenyomva tartásával kapcsolja be. Ezután lépjen az SDK-n belül a platform-tools alkönyvtárba, és futtassa a parancsot

Fastboot eszközök

Az eszköz neve megjelenik a képernyőn. Egyéb elérhető parancsok:

  • fatsboot oem feloldás- a rendszerbetöltő feloldása a nexusokon;
  • frissítse a file.zip fájlt- firmware telepítése;
  • flash boot boot.img- a rendszerindító partíció képének villogása;
  • flash recovery recovery.img- a helyreállítási partíció képének villogása;
  • flash rendszer rendszer.img- a rendszerkép villogása;
  • oem formátum- megsemmisült partíciós tábla helyreállítása;

Harmadik lépés. Inicializálás

Tehát, miután megkapta az irányítást, a kernel összekapcsolja a RAM-lemezt, és az összes alrendszer és illesztőprogram inicializálása után elindítja az init folyamatot, amely megkezdi az Android inicializálását. Ahogy már mondtam, az init rendelkezik egy init.rc konfigurációs fájllal, amelyből a folyamat megtanulja, hogy pontosan mit kell tennie a rendszer előhívásához. A modern okostelefonokban ez a konfiguráció lenyűgöző, több száz soros hosszúságú, és több gyermekkonfigurációt tartalmazó pótkocsival is fel van szerelve, amelyek az importálási irányelv segítségével csatlakoznak a fő konfigurációhoz. A formátuma azonban meglehetősen egyszerű, és lényegében blokkokra osztott parancsok halmaza.

Minden blokk meghatároz egy betöltési szakaszt, vagy Android fejlesztői szóhasználattal egy műveletet. A blokkokat egy on direktíva választja el egymástól, amelyet a művelet neve követ, például a korai beindításnál vagy a post-fs-nél. A parancsblokk csak akkor kerül végrehajtásra, ha az azonos nevű trigger aktiválódik. A rendszerindítás során az init felváltva aktiválja a korai init, init, early-fs, fs, post-fs, korai rendszerindítás és rendszerindítási triggereket, így elindítja a megfelelő parancsblokkokat.


Ha a konfigurációs fájl több, az elején felsorolt ​​konfigurációt behúz (és ez szinte mindig így van), akkor a bennük lévő azonos nevű parancsblokkok a fő konfigurációval kombinálódnak, így a trigger indításakor az init parancsokat hajt végre az összes fájl megfelelő blokkjából. Ez a több eszköz konfigurációs fájlok létrehozásának kényelmét szolgálja, amikor a fő konfiguráció minden eszközre közös parancsokat tartalmaz, és az egyes eszközökre jellemzők külön fájlba vannak írva.

A további konfigurációk közül a legfigyelemreméltóbb az initrc.device_name.rc, ahol az eszköznév meghatározása automatikusan történik a ro.hardware rendszerváltozó tartalma alapján. Ez egy platform-specifikus konfigurációs fájl, amely specifikus parancsblokkokat tartalmaz konkrét eszköz. A kernel hangolásáért felelős parancsokon kívül valami ilyesmit is tartalmaz:

Mount_all ./fstab.device_name

Ez azt jelenti, hogy az init-nek fel kell csatolnia az összes fájlrendszert, amely a következő struktúrájú ./fstab.device_name fájlban szerepel:

Eszköz_neve (partíció) beillesztési_pont fájlrendszer fs_options egyéb beállítások

Általában utasításokat tartalmaz a fájlrendszereknek a belső NAND-partíciókból a /system (OS), a /data (alkalmazásbeállítások) és a /cache (gyorsítótárazott adatok) könyvtárba történő csatlakoztatásához. Ennek a fájlnak a kis módosításával azonban rákényszeríthetjük az init-et, hogy a memóriakártyáról indítsa el a rendszert. Ehhez egyszerűen ossza fel a memóriakártyát három 4 részre: 1 GB / ext4, 2 GB / ext4, 1 GB / ext4 és a maradék fat32 terület. Ezután meg kell határoznia a memóriakártya-partíciók nevét a /dev könyvtárban (for különböző eszközök különböznek), és cserélje le őket az eredeti eszköznevekre az fstab fájlban.


A boot init blokk végén valószínűleg találkozik a class_start default paranccsal, amely tájékoztatja, hogy ezután el kell indítania a konfigurációban felsorolt ​​összes szolgáltatást, amely az alapértelmezett osztályhoz kapcsolódik. A szolgáltatások leírása a service direktívával kezdődik, ezt követi a szolgáltatás neve és az elindításához végrehajtandó parancs. A blokkokban felsorolt ​​parancsokkal ellentétben a szolgáltatásoknak folyamatosan futniuk kell, így az okostelefon teljes élettartama alatt az init a háttérben lóg, és ezt figyeli.

A modern Android több tucat szolgáltatást tartalmaz, de ezek közül kettőnek különleges állapota van, és meghatározza az egészet életciklus rendszerek.

init.rc parancsok

Az init folyamat beépített parancskészlettel rendelkezik, amelyek közül sok szabványos Linux parancsok. Közülük a legjelentősebbek:

  • exec /path/to/command- külső parancs futtatása;
  • ifup interfész- emelje fel a hálózati interfészt;
  • class_star class_name- a megadott osztályba tartozó szolgáltatásokat elindítani;
  • class_stop osztálynév- a szolgáltatások leállítása;
  • insmod /útvonal/modulhoz- a kernel modul betöltése;
  • mount FS eszközkönyvtár- csatlakoztassa a fájlrendszert;
  • setprop név értéke- rendszerváltozó beállítása;
  • start service_name- indítsa el a megadott szolgáltatást;
  • trigger neve- a trigger engedélyezése (a megadott parancsblokk végrehajtása);
  • írja be a /útvonal/fájl sorba- írjon egy sort egy fájlba.

Negyedik lépés. Zygote és app_process

A betöltés egy bizonyos szakaszában az init valami ehhez hasonló blokkot fog találni a konfiguráció végén:

Service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server class alapértelmezett socket zygote stream 660 gyökérrendszer onrestart write /sys/android_power/request_state wake onrestart write /sys/power/state on onrestart újraindítás adathordozó onrestart restart netd

Ez a Zygote szolgáltatás leírása, amely bármely Android rendszer kulcsfontosságú összetevője, amely felelős az inicializálásért, az indításért rendszerszolgáltatások, felhasználói alkalmazások indítása és leállítása és sok más feladat. A Zygote egy kis /system/bin/app_process alkalmazással indul, ami nagyon jól látható a konfiguráció fenti részében. Az app_proccess feladat a Dalvik virtuális gép elindítása, melynek kódja a /system/lib/libandroid_runtime.so megosztott könyvtárban található, majd a tetején futtassa a Zygote-ot.

Ha mindez megtörtént, és a Zygote kézben tartja, elkezdi felépíteni a Java alkalmazás futtatókörnyezetét a keretrendszer összes Java osztályának betöltésével (jelenleg több mint 2000). Ezután elindul a system_server, amely tartalmazza a legtöbb magas szintű (Java nyelven írt) rendszerszolgáltatást, beleértve a Window Managert, Állapotsor, Csomagkezelő és legfőképpen az Activity Manager, amely a jövőben az alkalmazások kezdetével és végével kapcsolatos jelzések fogadásáért lesz felelős.

Ezután a Zygote megnyitja a /dev/socket/zygote aljzatot, és alvó állapotba megy, és vár az adatokra. Ekkor a korábban elindított Activity Manager egy Intent.CATEGORY_HOME szórási szándékot küld, hogy megkeresse az asztal létrehozásáért felelős alkalmazást, és a socketen keresztül adja meg a nevét a Zygote-nak. Utóbbi viszont elágazik, és a virtuális gép tetején futtatja az alkalmazást. Voila, van egy asztal a képernyőnkon, amelyet az Activity Manager talált meg és a Zygote indított el, valamint egy állapotsor, amelyet a system_server indított el az állapotsor szolgáltatás részeként. Az ikon megérintése után az asztal intentot küld ennek az alkalmazásnak a nevével, az Activity Manager megkapja és parancsot küld az alkalmazás elindítására a Zygote démonnak.

INFO

A Linux terminológiájában a RAM lemez egyfajta virtuális merevlemez, csak a RAM-ban létezik. A rendszerindítási folyamat korai szakaszában a kernel kivonja a lemez tartalmát a lemezképből, és root fájlrendszerként (rootfs) csatolja azt.

A rendszerindítási folyamat során az Android három különböző indítóképernyőt jelenít meg: az első közvetlenül a bekapcsológomb megnyomása után jelenik meg, és a Linux kernelbe kerül, a második pedig az inicializálás korai szakaszában jelenik meg, és a /initlogo.rle fájlba kerül rögzítésre (aligha ma használatos), az utolsó a bootanimation alkalmazással indul el, és a /system/media/bootanimation.zip fájlban található.

A szabványos triggerek mellett az init lehetővé teszi saját triggerek definiálását is, amelyeket számos esemény indíthat el: eszköz csatlakoztatása USB-re, okostelefon állapotának megváltoztatása vagy rendszerváltozók állapotának megváltoztatása.

Az Activity Manager többek között a háttérben futó alkalmazásokat is leállítja, ha nincs elegendő memória. A szabad memória küszöbértékeit a /sys/module/lowmemorykiller/parameters/minfree fájl tartalmazza.

Mindez kissé zavarónak tűnhet, de a legfontosabb dolog az, hogy emlékezzen három egyszerű dologra:

Az Android sok tekintetben nagyon különbözik a többi operációs rendszertől, és ezt nehéz azonnal kitalálni. Ha azonban megérted, hogyan működik minden, a lehetőségek egyszerűen végtelenek. Ellentétben az iOS és Windows Phone, a Google operációs rendszere nagyon rugalmas architektúrával rendelkezik, amely lehetővé teszi, hogy komolyan megváltoztassa a viselkedését anélkül, hogy kódot kellene írnia. A legtöbb esetben elegendő a szükséges konfigurációk és szkriptek javítása.

Android operációs rendszer a Google-tól

Android fejlesztés története, Android frissítések, Android Market

1. szakasz: Az Android operációs rendszer jellemzői.

Az Android az hordozható (hálózati) operációs rendszer kommunikátorokhoz, táblagépek, elektronikus könyvek, digitális lejátszók, órák, netbookok és smartbookok, Linux kernelen alapuló.

Az Android az egy viszonylag fiatal operációs rendszer, amelyet mobileszközök széles körében használnak.

Az Android operációs rendszer jellemzői

Eredetileg az Android Inc. fejlesztette ki, amelyet később a Google vásárolt meg. Ezt követően a Google kezdeményezte az Open Handset Alliance (OHA) létrehozását, amely jelenleg a platform támogatásával és továbbfejlesztésével foglalkozik. Az Android lehetővé teszi Java-alkalmazások létrehozását, amelyek a Google által fejlesztett könyvtárakon keresztül vezérlik az eszközt. Az Android Native Development Kit C nyelven és más nyelveken írt alkalmazásokat hoz létre.

A 2012 harmadik negyedévében eladott okostelefonok 75%-án volt telepítve operációs rendszer Android rendszer.

Android használatával kommunikátorokat (a legelterjedtebb osztály) és tábla PC-ket (táblagépeket), netbookokat vagy smartbookokat egyaránt találhat. Ezenkívül a gyártók nem hagyják abba a kísérletezést, integrálva az operációs rendszert különféle berendezésekbe. Egy Android karóra vagy TV set-top box már senkit sem lep meg.

Az operációs rendszert az Android Inc. fejlesztette ki, amelyet aztán a Google felvásárolt, és átkerült az OHA - Open Handset Alliance szervezethez, amely a nyílt mobil szabványok fejlesztésével és bevezetésével foglalkozik. Az OHA-hoz a Google mellett olyan óriáscégek tartoznak, mint a HTC, az Intel, a Motorola, a Qualcomm, a Samsung, az LG, a T-Mobile és az Nvidia.

Videó:

Bár az operációs rendszer a Linux kernelen alapul, nem használja ki ennek az operációs rendszernek az összes képességét. Ennek oka a Dalvik virtuális gép használata, amelyben minden működik szoftver. A Native Development Kit megjelenésével azonban a fejlesztőknek lehetőségük nyílik natív alkalmazásokat létrehozni C nyelven és más programozási nyelveken.


Frissítse az előzményeketAndroid

Az Android első verzióját még 2008 szeptemberében mutatták be, és csak a T-Mobile G1 (HTC Dream) kommunikátorhoz készült. Frissítést is kapott a hat hónappal később bejelentett 1.1-es verzióra.

Az operációs rendszer gyors fejlődése a Cupcake (1.5) és a Donut (1.6) verzióival kezdődött. Az Eclair 2.0-s verziója köztes verzió lett, a 2.1-es verzió pedig pontosan ugyanazt a nevet viselte. Ez utóbbi irányítása alatt mutatták be a legnépszerűbb eszközöket - a Nexus One-t és „testvérét”, a HTC Desire-t.

Aztán megjelent az Android 2.2 Froyo, amely támogatást nyújtott a felhasználóknak a HTML5 és a Flash 10.1 webes technológiákhoz, ami lehetővé tette számukra, hogy jelentős előnyre tegyenek szert versenytársaikkal szemben.

Ezt követően a cég bemutatta az Android 2.3 Gingerbreadet frissített felhasználói felülettel, az NFC szabvány támogatásával, több kamerával és nagy felbontású kijelzőkkel.


De a legtöbb globális változást az Android 3.0 Honeycomb-ban látjuk, amely egy speciális táblagépes verzió. Teljesen más felhasználói felülettel, 3D effektusokkal, felhasználóbarát böngészővel és sok egyéb fejlesztéssel rendelkezik.

Sajnos az Android 3.0 Honeycomb csak táblagépekre lesz elérhető. A kommunikátorokon csak a portolt verziókat láthatjuk majd...

Jelenleg az Android 2.4-es verziója csak pletykákból ismert. De talán az okostelefonokhoz és kommunikátorokhoz adaptált táblagépes verzió analógja lesz.

Videó:

Az első verzió 2008. szeptemberi megjelenése óta számos rendszerfrissítés történt. Ezek a frissítések általában az észlelt hibák kijavítására és új funkciók hozzáadására vonatkoznak. A rendszer minden verziója saját, desszert témájú kódnevet kap. A kódnevek ábécé sorrendben vannak hozzárendelve.


2012 novemberéig a rendszer 14 verziója jelent meg. Legújabb verzió- 4.2 Jelly Bean ("Nalóka rágós töltelékkel").

A rajongók közössége fejleszti az Android firmware teljesen nyílt verzióit (például CyanogenMod, MIUI, Virtuous Quattro, VillainROM, Open Kang Project, Replicant).

Az Android módosított verziói (más néven "firmware" vagy "egyéni firmware") a következőkhöz jönnek létre:

a Google szolgáltatások eltávolítása az Android készülékről (például adatszinkronizálás) - a felhasználói adatok lokalizálásának biztosítása csak az Android készüléken - az azonosító adatok (IMEI, telefonszám, GPS koordináták stb.) szerverekre történő továbbításának lehetőségének megszüntetése Google;

gyorsabb és gyakoribb (magához az eszközök gyártóihoz képest) az Android operációs rendszer új verzióinak biztosítása. Nem ritka, hogy egy gyártó abbahagyja egy általa elavultnak vagy veszteségesnek talált modell támogatását, és az új funkciókat látni vágyó felhasználóknak a rajongók munkájához kell fordulniuk, bár sok rendszerszinten elavult telefonnál van lehetőség a további frissítésre (Nexus One kiváló példa).

Videó:

kiegészítések az Android firmware-hez új beállításokkal és funkciókkal. Ilyen például a FLAC Lossless Audio támogatása, a letöltött alkalmazások MicroSD-kártyán való tárolásának lehetősége (Android 2.2-es verzióig) stb.


Az Android-eszköz flasheléséhez root hozzáférésre van szükség (ezt rootolásnak hívják), ami nagyobb irányítást biztosít az alapértelmezés szerint telepített rendszer és alkalmazások felett. A root hozzáféréshez nem szükséges feloldani a rendszerbetöltőt (a feloldott rendszerbetöltő lehetővé teszi két vagy több operációs rendszer indítását az eszközön). A módosított firmware lehetővé teszi a régebbi telefonok felhasználói számára, hogy csak az újabb kiadásokhoz elérhető alkalmazásokat használják, növeli a stabilitást, a sebességet, és gyakran megszabadul a gyártói hibáktól.

Az Android készülékek összes gyártója kezdetben hardverrel blokkolja a root hozzáférést (és a villogás lehetőségét), amelyet az a vágy motivál, hogy megvédje a felhasználót a rosszindulatú programok telepítésétől, és megvédje az eszközt a sérülésektől. Az összetett hackertechnikák széles körben elterjedt alkalmazása miatt azonban a védelem megkerülésére a gyártók kénytelenek voltak félúton találkozni, és megteremteni a telefonok hivatalos feloldásának lehetőségét (Sony Ericsson – Unlocking the Boot loader service, HTC – Unlocking Your Bootloader service). A telefon esetleges meghibásodásával járó kockázat a feloldási folyamat során a felhasználóra száll át, aki a bootloader feloldása esetén elfogadja a telefon garanciájának korai elvesztésére utaló feltételeket. Néhány gyártó pedig még tovább ment, és mindent megtett annak érdekében, hogy egy haladó felhasználó ne csak más firmware-t telepíthessen, hanem saját maga is létrehozhasson (részletes utasítások a firmware, szoftver cseréjéhez, a szoftverplatform architektúrájára vonatkozó dokumentáció, eredeti firmware kód stb.). rendelkezésre állnak, és támogatják az alternatív firmware fejlesztését (a Sony Ericsson támogatja a CyanogenModot). Ezenkívül ez (a Sony Ericsson kezdeményezése) szükségtelenné teszi a nem tesztelt hackereszközök használatát a villogási folyamathoz (például a HTC-hez).

A két fél (maguk a telefongyártók a Google-lel és a felhasználókkal együtt) összeférhetetlenségében a következő motiváció nyomon követhető:

a gyártók olyan „hirdetési” alkalmazásokat akarnak telepíteni a telefonokra, amelyeket rootolás nélkül nem lehet eltávolítani;

Videó:

A Google a lehető legtöbb információt szeretne összegyűjteni a felhasználóról: nem csak személyes adatokat, például címeket email vagy az oldallátogatások előzményei, hanem a felhasználó mozgásának valós idejű információi (GPS koordináták, vagy kikapcsolt GPS-vevő esetén a készülék helye a cellatorony jelei alapján), ami jogi eljáráshoz vezetett.

A gyártók nem törekednek az operációs rendszer gyors frissítésére, és körülbelül hat hónap elteltével leállítják a termék támogatását, ami arra kényszeríti a vásárlókat, hogy új telefontípusokra váltsanak.

2009. szeptember 24-én a Google egy levélben fordult a CyanogenMod fejlesztőihez, amelyben a rendszer egyes részeinek és a zárt forráskódú alkalmazások (például Market, GPS-navigáció, Maps stb.) eltávolítását követelte az alternatív firmware-ről. Ennek eredményeként a CyanogenMod Android-verziójából eltávolították a „zárt” alkalmazásokat, és a CyanogenMod telepítési folyamata során a felhasználónak lehetősége van arra, hogy további szoftvercsomagot telepítsen a Google-tól, vagy további „zárt” programok alternatív verzióit (egy a „Maps” alternatív verziója stb.), amely lehetővé tette a vitát, és lehetőséget biztosított a felhasználóknak, hogy mentesüljenek a Google-alkalmazásoktól.


Az Android fejlesztés története

Július – A Google felvásárolta az Android Inc.-t.

Szeptember 5. – Hivatalosan is bejelentették az Open Handset Alliance (OHA) cégcsoport létrehozását, melynek célja nyílt szabványok kidolgozása mobil eszközökre. Jelenleg az OHA 34 vállalatot egyesít, köztük a legnagyobb mobilszolgáltatókat, a T-Mobile-t, a mobiltelefon-gyártókat HTC eszközök, Intel, Sprint Nextel, KDDI, NTT DoCoMo, China Mobile, chipfejlesztők: Broadcom, Marvell, NVIDIA, Qualcomm, SiRF, Texas Instruments, LG, Motorola, Samsung Electronics, valamint az IT-ipar globális óriása és az egyik a szövetség fő inspirálói , a Google cég. Az OHA bevezetésével egy időben bejelentették a Linux kernelen alapuló nyílt mobilplatformot, az Androidot.

November 12. - Bemutatták és letölthető az Android fejlesztői csomag „Early Look” SDK első verziója.


Szeptember 23. - Google cég együtt mobilszolgáltató A T-Mobile és a tajvani gyártó, a HTC bejelentette az első Android 1.0 platformon alapuló készüléket, a T-Mobile G1 okostelefont (HTC Dream).

Megjelent az első teljes értékű SDK 1.0, Release 1.

Január 12. – Megjelent az Android 2.1. Egyes források ezt a verziót "Flan"-nak nevezik, de ez az "Eclair" kiadás része.

Május – Megjelent az Android 2.2 (FroYo).

December – Megjelent az Android 2.3 (Gingerbread).

Augusztus 15. – A Google megállapodott a Motorola Mobility igazgatótanácsával a távközlési vállalat 12,5 milliárd dolláros megvásárlásáról.

A Droid és Roboto betűtípuscsaládokat kifejezetten az Android platformra hozták létre.

Az Android operációs rendszer 1.5-től kezdődő minden verziójának neve egy desszert neve. A nevek első betűi a verziók sorrendjében a latin ábécé betűinek felelnek meg: 1.5 Cupcake, 1.6 Donut, 2.0/2.1 Eclair, 2.2 Froyo (a fagyasztott joghurt rövidítése) ), 2.3 Gingerbread, 3.0 Honeycomb, Cream Sandwich, 4.0 4.1/4.2 Jelly Bean, 5.0 Key Lime Pie ("kulcs lime pite"), Lollipop ("nyalóka"), Melasses ("melasz") és Nugát ("nugát") (a dőlt betű a jövőbeli és/vagy meg nem erősített verziókat jelzi).

Az első kettő a híres robotok neve volt: 1.0 Astro ("Astro Boy") és 1.1 Bender ("Futurama"), de a szerzői jogok miatt desszertekre változtatták.

2011 februárjában az Android operációs rendszerrel rendelkező készülékek magabiztosan vezették a legnépszerűbb okostelefonok listáját az Egyesült Királyságban, maga mögött hagyva az iOS-es iPhone 4-et. Szakértők szerint ez az Android OS első lépése a mobilpiac globális vezető szerepe felé operációs rendszerek.

A hivatalos Android webhelyek továbbra sem jelzik az operációs rendszer futtatásához szükséges minimális hardverkövetelményeket (csak az Android fejlesztőkészlethez vannak hardverkövetelmények).

A hivatalos Android weboldalon a bal alsó sarokban, ha a robot fölé viszed az egérmutatót, különféle mozdulatokat hajt végre, kattintásra pedig integet a kezével.

Az Android 1.6-os verziójában a fejlesztők hozzáadták a Native Development Kit-et, amely lehetővé teszi saját alacsony szintű modulok megírását a rendszerhez C/C++ nyelven, szabványos Linux könyvtárakra támaszkodva. Bár például az Android platform szabványos C könyvtára, amely Bionic néven ismert, nem szabványos, és teljesen kompatibilis a libc-vel.

Videó:

A hozzáféréshez Google Playés a Google egyéb szolgáltatásai csak a Google-lal kötött szerződést követően szabadalmaztatott alkalmazásokat használhatnak, amelyeket a telefon gyártója jogosult a telefonra telepíteni.

Az Android versenytársai bírálták a platformot, és azzal vádolják, hogy túlzottan töredezett, és hátráltatja a fejlesztőket. A Google visszautasított minden vádat, mondván, hogy nincsenek ilyen problémák, de ennek ellenére kiadott egy eszközt a töredezettségi problémák leküzdésére.

Kritikát kapott a Google azon döntése, hogy nem adja ki nyilvánosan az Android 3.0 Honeycomb kódot, amely csak az Open Handset Alliance tagjai számára vagy egyéni kérésre érhető el a megállapodás aláírása után. A Google ezt a platform elérhetetlenségével és a gondatlan bevezetését megakadályozó intézkedéssel motiválja.

Richard Stallman kijelentette, hogy "egyértelmű és egyszerű: a Linux kernel kivételével az Android 3 szabadalmaztatott szoftver", és "bár az Android telefonok ma nem olyan rosszak, mint az Apple vagy a Windows okostelefonok, nem mondható el, hogy tiszteletben tartják a szabadságot. " A Google szerint az Android 3.0 zárt kódja átmeneti intézkedés, de még a 4-es verzió megjelenése után sem nyíltak meg a 3.0 forrásai.

A Lookout Security Mobile szerint csak 2011-ben körülbelül egymillió dollárt loptak el Android okostelefon-felhasználóktól.

2008. október 21-én az OHA Alliance közzétette az Android platform forráskódját. A kiadás a teljes Android-vermet tartalmazta: az operációs rendszert, a köztes szoftvert és a Java nyelven írt fő alkalmazásokat. Az Android forráskód teljes mérete 2,1 GB volt. Az Android forráskód "preferált licence" az Apache License 2.0. Az Android 3.0 Honeycomb megjelenése után a Google mobil részlegének elnöke, Andy Rubin bejelentette, hogy a rendszer új verziójának nyílt forráskódja késni fog, mivel a rendszer nem volt felkészítve a kommunikátorokon való működésre, és szükséges. jelentős optimalizálás. Ez a döntés kiváltotta az elemzők kritikáját: Christopher Dawson, a ZDNet rovatvezetője például kiábrándítónak nevezte a Google lépését. A cég ígéretei szerint azonban a Google 2011 őszén megnyitotta a rendszer következő verziójának - Android 4.0 Ice Cream Sandwich - forráskódját.


Android készülékek

Az első Androidot futtató készülék a HTC által fejlesztett HTC Dream okostelefon volt (hivatalosan is megjelent mobilszolgáltató A T-Mobile T-Mobile G1 néven), melynek bemutatójára 2008. szeptember 23-án került sor. Hamarosan számos nyilatkozat követte más okostelefon-gyártóktól, hogy Android alapú eszközöket kívánnak kiadni. Az Android harmadik verziójának (Honeycomb) megjelenésével, amely a táblagépekre irányult, egyre több gyártó kezdte bejelenteni a táblagépek megjelenését ezen a platformon. A Google a mobilipar különböző óriásaival együttműködve saját készülékeket is gyárt a „Google Nexus” sorozatban. Ezek az eszközök az elsők, amelyek frissítéseket kapnak az új verziókhoz.

Az Android operációs rendszer az okostelefonokon és táblagépeken kívül más eszközökre is telepítve van. Így 2009 végén forgalomba került az első Androidon futó képkeret. 2011 júniusában az olasz Blue Sky cég bejelentette az Android operációs rendszert futtató i’mWatch intelligens karóra megjelenését. 2012 augusztusában a Nikon bemutatta a világ első fényképezőgépét, amely a Google platformján is fut. A már említett „Google Nexus” sorozatba nem csak okostelefonok és táblagépek tartoznak, hanem az Androidon futó Nexus Q médialejátszó is.


Emellett a rajongók számos jól ismert eszközre portolták az Androidot, köztük például a Windows Mobile platformon lévő HTC Touch Dual okostelefonokra és a HTC TyTN II-re, amelyeken az Android emulációs módban futott. A teljes portolást olyan eszközökre is elvégezték, mint a Maemo-n futó internetes táblagépek - Nokia N810 és Nokia N900 (a Nitdroid nevű port) -, valamint a MeeGo platformon futó Nokia N9 okostelefonokra és az operációs rendszeren futó HTC HD2 okostelefonokra. Windows rendszer Mobil, amelyen microSD kártyáról és belső NAND memóriáról is futtatható az Android OS. Egy időben telepített rendszer teljes, korlátlan funkcionalitással rendelkezik. Ezenkívül sikeres volt az Android telepítése néhány Apple-eszközre - iPhone, iPod Touchés iPad segítségével speciális program Openiboot néven, amelyet arra terveztek, hogy különféle operációs rendszereket futtasson ezeken az eszközökön, beleértve az Androidot is. A Bada operációs rendszert futtató eszközökön korlátozott funkcionalitású, kiadás előtti firmware jelenik meg. A Koolu nemcsak az Android portolását kezdte el a Neo FreeRunnerre, hanem üzletét is ezen okostelefonok értékesítésére építette fel a Google előre telepített mobilplatformjával. A Koolu's Neo FreeRunner Android-portjának első hivatalos és nyilvános bétaverziójára 2008 decemberében került sor. Az Android is át lett portolva x86 architektúrára.


Források

Wikipédia – The Free Encyclopedia, WikiPédia

android.com – Android webhely

proandroid.net – Android alkalmazások

youhtc.ru – Minden az NTS telefonokhoz

Gondolkozott már azon, hogyan működik a fastboot vagy az ADB? Vagy miért szinte lehetetlen egy Androidot futtató okostelefont téglává varázsolni? Vagy talán már régóta szeretné tudni, hol rejlik az Xposed keretrendszer varázsa, és miért van szükség a /system/etc/init.d rendszerindító szkriptekre? Mi a helyzet a helyreállítási konzollal? Ez az Android része vagy önmagában való dolog, és miért nem alkalmas a rendszeres helyreállítás harmadik fél firmware-ének telepítésére? Mindezekre és sok más kérdésre választ talál ebben a cikkben.

Hogyan működik az Android

A szoftverrendszerek rejtett képességeit megismerheti működési elvük megértésével. Egyes esetekben ez nehezen kivitelezhető, hiszen előfordulhat, hogy a rendszerkód zárva van, Android esetén viszont a teljes rendszert kívül-belül tanulmányozhatjuk. Ebben a cikkben nem fogok beszélni az Android minden árnyalatáról, és csak arra összpontosítok, hogyan indul az operációs rendszer, és milyen események történnek a bekapcsológomb megnyomása és az asztal megjelenése között.

Útközben elmagyarázom, mit változtathatunk ezen az eseményláncon, és hogyan használják az egyedi firmware-fejlesztők ezeket a képességeket olyan dolgok megvalósítására, mint az operációs rendszer paramétereinek hangolása, az alkalmazások tárhelyének bővítése, a swap csatlakoztatása, a különféle testreszabások és még sok más. Mindezek az információk felhasználhatók saját firmware létrehozására, valamint különféle hackek és módosítások végrehajtására.

Első lépés. ABOOT és partíciós tábla

Minden az elsődleges rendszerbetöltővel kezdődik. A tápfeszültség bekapcsolása után a rendszer végrehajtja az eszköz állandó memóriájában tárolt bootloader kódot. Ezután átadja a vezérlést a gyorsindítási protokoll beépített támogatásával rendelkező aboot bootloadernek, de a mobil chip vagy okostelefon/táblagép gyártójának jogában áll bármelyik másik indítóbetöltőt választani. Például a Rockchip saját rendszerbetöltőt használ, amely nem kompatibilis a gyorsindítással, és szabadalmaztatott eszközöket igényel a flash és a kezelés.

A fastboot protokoll viszont egy olyan rendszer, amely a rendszerbetöltőt PC-ről kezeli, és lehetővé teszi olyan műveletek végrehajtását, mint a rendszerbetöltő feloldása, új kernel felvillantása és helyreállítása, firmware telepítése és még sok más. A fastboot létjogosultsága az, hogy egy okostelefont vissza lehessen állítani az eredeti állapotába olyan helyzetben, amikor minden más eszköz kudarcot vall. A Fastboot akkor is a helyén marad, ha a kísérletek eredményeként az összes Androidot és helyreállítást tartalmazó NAND memóriapartíciót töröl az okostelefonjáról.

Miután megkapta az irányítást, az aboot ellenőrzi a partíciós táblát, és átadja az irányítást a rendszermagnak, amely a boot nevű partícióba került, majd a kernel kivonja a RAM-képet ugyanarról a partícióról a memóriába, és megkezdi az Android vagy a helyreállítási konzol betöltését. Az Android-eszközök NAND memóriája hat feltételesen szükséges részre oszlik:

  • boot - tartalmazza a kernelt és a RAM-lemezt, általában körülbelül 16 MB méretű;
  • helyreállítás - helyreállítási konzol, egy kernelből, egy konzolalkalmazás-készletből és egy beállításfájlból áll, mérete 16 MB;
  • rendszer - Androidot tartalmaz, a modern eszközökben a mérete legalább 1 GB;
  • gyorsítótár - gyorsítótárazott adatok tárolására szolgál, az OTA frissítés során a firmware mentésére is szolgál, ezért mérete hasonló a rendszerpartíció méretéhez;
  • felhasználói adatok - beállításokat, alkalmazásokat és felhasználói adatokat tartalmaz, az összes fennmaradó NAND memóriaterület hozzá van rendelve;
  • misc - tartalmaz egy zászlót, amely meghatározza, hogy a rendszer milyen módban induljon el: Android vagy helyreállítás.
Rajtuk kívül lehetnek más szakaszok is, de az általános jelölést az okostelefon tervezési szakaszában határozzák meg, és aboot esetén a rendszerbetöltő kódba varrják. Ez azt jelenti, hogy: 1) a partíciós tábla nem törölhető, mivel mindig visszaállítható a fastboot oem format paranccsal; 2) a partíciós tábla megváltoztatásához fel kell oldania és újra kell töltenie a rendszertöltőt új paraméterekkel. Vannak azonban kivételek e szabály alól. Például ugyanannak a Rockchipnek a rendszerbetöltője a NAND memória első blokkjában tárol információkat a partíciókról, így nem szükséges a rendszerbetöltő flashelése a változtatáshoz.

A rendszerbetöltő kód része, amely meghatározza a partíciós táblát


A vegyes rész különösen érdekes. Feltételezhető, hogy eredetileg a fő rendszertől függetlenül különféle beállítások tárolására készült, de jelenleg csak egy célra használják: jelezze a rendszerbetöltőnek, hogy melyik partícióról kell betölteni a rendszert - rendszerindítás vagy helyreállítás. Ezt a funkciót különösen a ROM Manager alkalmazás használja a rendszer automatikus újraindítására a helyreállításhoz a firmware automatikus telepítésével. Ennek alapján épül fel az Ubuntu Touch dual boot mechanizmus, amely az Ubuntu rendszerbetöltőt visszaállítja, és lehetővé teszi annak szabályozását, hogy melyik rendszer induljon el legközelebb. Törölve a misc partíciót - Android betölt, adatokkal feltöltve - helyreállítás betöltődik... vagyis Ubuntu Touch.

Második lépés. Boot rész

Ha a misc szakasz nem rendelkezik helyreállítási rendszerindítási jelzővel, az aboot átadja az irányítást a rendszerindító részben található kódra. Ez nem más, mint a Linux kernel; a szakasz elején található, majd közvetlenül utána egy cpio és gzip archiválókkal csomagolt RAM lemezkép, amely tartalmazza az Android működéséhez szükséges könyvtárakat, az inicializálási rendszert és egyéb eszközöket. A rendszerindító partíción nincs fájlrendszer, a kernel és a RAM-lemez egyszerűen követi egymást. A RAM lemez tartalma:

  • data - könyvtár az azonos nevű partíció csatlakoztatásához;
  • dev - eszközfájlok;
  • proc - a procfs ide van felszerelve;
  • res - képkészlet a töltőhöz (lásd alább);
  • sbin - segédprogramok és démonok halmaza (például adbd);
  • sys - a sysfs ide van csatolva;
  • system - könyvtár a rendszerpartíció csatlakoztatásához;
  • töltő - alkalmazás a töltési folyamat megjelenítésére;
  • build.prop - rendszerbeállítások;
  • init - inicializálási rendszer;
  • init.rc - inicializálási rendszerbeállítások;
  • ueventd.rc - az uventd démon beállításai az initben.
Ez, mondhatni, a rendszer váza: egy könyvtárkészlet a fájlrendszerek NAND-memóriapartíciókról való összekapcsolására, valamint egy inicializálási rendszer, amely a rendszerindítás többi részét is ellátja. A központi elem itt az init alkalmazás és annak init.rc konfigurációja, amelyről a későbbiekben részletesen szólok. Addig is felhívnám a figyelmet a töltő és az ueventd.rc fájlokra, valamint az sbin, proc és sys könyvtárakra.

A töltőfájl egy kis alkalmazás, amelynek egyetlen feladata az akkumulátor ikon megjelenítése a képernyőn. Semmi köze az Androidhoz, és akkor használatos, ha az eszköz kikapcsolt állapotban csatlakozik a töltőhöz. Ebben az esetben az Android nem töltődik be, és a rendszer egyszerűen betölti a kernelt, csatlakoztatja a RAM-lemezt és elindítja a töltőt. Utóbbi egy akkumulátor ikont jelenít meg, amelynek képe minden lehetséges állapotban közönséges PNG-fájlokban tárolódik a res könyvtárban.

Az ueventd.rc fájl egy olyan konfiguráció, amely meghatározza, hogy a rendszerindítás során a sys könyvtárban mely eszközfájlokat kell létrehozni. A Linux kernelen alapuló rendszerekben a hardverhez való hozzáférés a dev könyvtáron belüli speciális fájlokon keresztül történik, ezek létrehozásáért az Androidban az init részét képező ueventd démon felel. Normál helyzetben automatikus módban működik, parancsokat fogad el fájlok létrehozásához a kernelből, de néhány fájlt önállóan kell létrehozni. Az ueventd.rc oldalon vannak felsorolva.

A készleten lévő Android sbin könyvtár általában nem tartalmaz mást, mint az adbd-t, vagyis az ADB démont, ami a PC-ről történő rendszer hibakereséséért felelős. Az operációs rendszer indításának korai szakaszában fut, és lehetővé teszi a lehetséges problémák azonosítását az operációs rendszer inicializálási szakaszában. Egyéni firmware-ekben sok más fájl is található ebben a könyvtárban, például az mke2fs, amelyre szükség lehet, ha a partíciókat újra kell formázni ext3/4-re. Emellett a modderek gyakran elhelyeznek egy BusyBox-ot, amivel több száz Linux-parancsot hívhatunk meg.

A proc könyvtár szabványos a Linux számára, a rendszerindítás következő szakaszában az init csatlakozik hozzá a procfs, egy virtuális fájlrendszer, amely hozzáférést biztosít a rendszer összes folyamatáról. A rendszer összekapcsolja a sysfs-t a sys könyvtárral, amely hozzáférést biztosít a hardverrel és annak beállításaival kapcsolatos információkhoz. A sysf használatával például alvó állapotba helyezheti az eszközt, vagy módosíthatja a használt energiatakarékos algoritmust.

A build.prop fájl az alacsony szintű Android-beállítások tárolására szolgál. Később a rendszer visszaállítja ezeket a beállításokat, és felülírja azokat a jelenleg nem elérhető system/build.prop fájl értékeivel.


Az OUYA TV set-top box gyökér része


Második lépés, alternatíva. Helyreállítási szakasz

Ha a Misc részben be van állítva a helyreállítási rendszerindítási jelző, vagy a felhasználó bekapcsolja az okostelefont a hangerőcsökkentő gomb lenyomva tartásával, az aboot átadja a vezérlést a helyreállítási szakasz elején található kódra. A rendszerindító partícióhoz hasonlóan ez is tartalmazza a kernelt és egy RAM-lemezt, amely a memóriába kerül, és a fájlrendszer gyökerévé válik. A RAM-lemez tartalma azonban itt némileg eltér.

Ellentétben a rendszerindító partícióval, amely átmeneti kapcsolatként működik az operációs rendszer betöltésének különböző szakaszai között, a helyreállítási partíció teljesen önellátó, és egy miniatűr operációs rendszert tartalmaz, amely semmilyen módon nem kapcsolódik az Androidhoz. A helyreállításnak saját magja, saját alkalmazáskészlete (parancsai) és saját felülete van, amely lehetővé teszi a felhasználó számára a szolgáltatási funkciók aktiválását.

Egy szabványos (készlet) helyreállításban általában csak három ilyen funkció van: az okostelefon gyártójának kulcsával aláírt firmware telepítése, törlés és újraindítás. A módosított harmadik féltől származó helyreállítások, mint például a ClockworkMod és a TWRP, sokkal több funkcióval rendelkeznek. Formázhatják a fájlrendszereket, telepíthetik a tetszőleges kulccsal aláírt firmware-t (értsd: egyéni), fájlrendszereket csatlakoztathatnak más partíciókra (OS hibakeresési célokra), és tartalmazhatnak szkript-támogatást, amely lehetővé teszi a firmware folyamatának automatizálását és sok más funkciót.

A szkriptek használatával például megbizonyosodhat arról, hogy a rendszerindítás után a helyreállítás automatikusan megtalálja a szükséges firmware-t a memóriakártyán, telepíti azokat, és újraindul az Androidon. Ezt a funkciót a ROM Manager, az automatikus flasher eszközök, valamint a CyanogenMod és más firmware automatikus frissítési mechanizmusa használja.

Az egyéni helyreállítás támogatja a /system/addon.d/ könyvtárban található biztonsági mentési szkripteket is. A villogás előtt a helyreállítás ellenőrzi a szkripteket, és végrehajtja azokat a firmware felvillantása előtt. Az ilyen szkripteknek köszönhetően a gapp-ok nem tűnnek el egy új firmware-verzió telepítése után.

Harmadik lépés. Inicializálás

Tehát, miután megkapta az irányítást, a kernel összekapcsolja a RAM-lemezt, és az összes alrendszer és illesztőprogram inicializálása után elindítja az init folyamatot, amely megkezdi az Android inicializálását. Ahogy már mondtam, az init rendelkezik egy init.rc konfigurációs fájllal, amelyből a folyamat megtanulja, hogy pontosan mit kell tennie a rendszer előhívásához. A modern okostelefonokban ez a konfiguráció lenyűgöző, több száz soros hosszúságú, és több gyermekkonfigurációt tartalmazó pótkocsival is fel van szerelve, amelyek az importálási irányelv segítségével csatlakoznak a fő konfigurációhoz. A formátuma azonban meglehetősen egyszerű, és lényegében blokkokra osztott parancsok halmaza.

Minden blokk meghatároz egy betöltési szakaszt, vagy Android fejlesztői szóhasználattal egy műveletet. A blokkokat egy on direktíva választja el egymástól, amelyet a művelet neve követ, például a korai beindításnál vagy a post-fs-nél. A parancsblokk csak akkor kerül végrehajtásra, ha az azonos nevű trigger aktiválódik. A rendszerindítás során az init felváltva aktiválja a korai init, init, early-fs, fs, post-fs, korai rendszerindítás és rendszerindítási triggereket, így elindítja a megfelelő parancsblokkokat.


A CyanogenMod init.rc konfigurációjának része


Ha a konfigurációs fájl több, az elején felsorolt ​​konfigurációt behúz (és ez szinte mindig így van), akkor a bennük lévő azonos nevű parancsblokkok a fő konfigurációval kombinálódnak, így a trigger indításakor az init parancsokat hajt végre az összes fájl megfelelő blokkjából. Ez a több eszköz konfigurációs fájlok létrehozásának kényelmét szolgálja, amikor a fő konfiguráció minden eszközre közös parancsokat tartalmaz, és az egyes eszközökre jellemzők külön fájlba vannak írva.

A további konfigurációk közül a legfigyelemreméltóbb az initrc.device_name.rc, ahol az eszköznév meghatározása automatikusan történik a ro.hardware rendszerváltozó tartalma alapján. Ez egy platform-specifikus konfigurációs fájl, amely eszközspecifikus parancsblokkokat tartalmaz. A kernel hangolásáért felelős parancsokon kívül valami ilyesmit is tartalmaz:

Kód:

Mount_all ./fstab.device_name

Ez azt jelenti, hogy az init-nek fel kell csatolnia az összes fájlrendszert, amely a következő struktúrájú ./fstab.device_name fájlban szerepel:

Kód:

Eszköz_neve (partíció) beillesztési_pont fájlrendszer fs_options egyéb beállítások

Általában utasításokat tartalmaz a fájlrendszereknek a belső NAND-partíciókból a /system (OS), a /data (alkalmazásbeállítások) és a /cache (gyorsítótárazott adatok) könyvtárba történő csatlakoztatásához. Ennek a fájlnak a kis módosításával azonban rákényszeríthetjük az init-et, hogy a memóriakártyáról indítsa el a rendszert. Ehhez egyszerűen ossza fel a memóriakártyát három 4 részre: 1 GB / ext4, 2 GB / ext4, 1 GB / ext4 és a maradék fat32 terület. Ezután meg kell határoznia a memóriakártya-partíciók nevét a /dev könyvtárban (különböző eszközök esetén eltérőek), és le kell cserélnie őket az eredeti eszköznevekre az fstab fájlban.


Tipikus fstab fájltartalom


A boot init blokk végén valószínűleg találkozik a class_start default paranccsal, amely tájékoztatja, hogy ezután el kell indítania a konfigurációban felsorolt ​​összes szolgáltatást, amely az alapértelmezett osztályhoz kapcsolódik. A szolgáltatások leírása a service direktívával kezdődik, ezt követi a szolgáltatás neve és az elindításához végrehajtandó parancs. A blokkokban felsorolt ​​parancsokkal ellentétben a szolgáltatásoknak folyamatosan futniuk kell, így az okostelefon teljes élettartama alatt az init a háttérben lóg, és ezt figyeli.

A modern Android több tucat szolgáltatást tartalmaz, de ezek közül kettő különleges státuszú, és meghatározza a rendszer teljes életciklusát.

Negyedik lépés. Zygote és app_process

A betöltés egy bizonyos szakaszában az init valami ehhez hasonló blokkot fog találni a konfiguráció végén:

Kód:

Service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server class alapértelmezett socket zygote stream 660 gyökérrendszer onrestart write /sys/android_power/request_state wake onrestart write /sys/power/state on onrestart újraindítás adathordozó onrestart restart netd

Ez a Zygote szolgáltatás leírása, amely bármely Android-rendszer kulcsfontosságú összetevője, amely felelős az inicializálásért, a rendszerszolgáltatások elindításáért, a felhasználói alkalmazások indításáért és leállításáért, valamint sok más feladatért. A Zygote egy kis /system/bin/app_process alkalmazással indul, ami nagyon jól látható a konfiguráció fenti részében. Az app_proccess feladat a Dalvik virtuális gép elindítása, melynek kódja a /system/lib/libandroid_runtime.so megosztott könyvtárban található, majd a tetején futtassa a Zygote-ot.

Ha mindez megtörtént, és a Zygote kézben tartja, elkezdi felépíteni a Java alkalmazás futtatókörnyezetét a keretrendszer összes Java osztályának betöltésével (jelenleg több mint 2000). Ezután elindul a system_server, amely a legtöbb magas szintű (Java nyelven írt) rendszerszolgáltatást tartalmazza, beleértve a Window Managert, az Állapotsort, a Csomagkezelőt és – ami a legfontosabb – az Activity Managert, amely a jövőben a kezdés és a vég fogadásáért lesz felelős. jelzi az alkalmazásokat.

Ezután a Zygote megnyitja a /dev/socket/zygote aljzatot, és alvó állapotba megy, és vár az adatokra. Ekkor a korábban elindított Activity Manager egy Intent.CATEGORY_HOME szórási szándékot küld, hogy megkeresse az asztal létrehozásáért felelős alkalmazást, és a socketen keresztül adja meg a nevét a Zygote-nak. Utóbbi viszont elágazik, és a virtuális gép tetején futtatja az alkalmazást. Voila, van egy asztal a képernyőnkon, amelyet az Activity Manager talált meg és a Zygote indított el, valamint egy állapotsor, amelyet a system_server indított el az állapotsor szolgáltatás részeként. Az ikon megérintése után az asztal intentot küld ennek az alkalmazásnak a nevével, az Activity Manager megkapja és parancsot küld az alkalmazás elindítására a Zygote démonnak.

Mindez kissé zavarónak tűnhet, de a legfontosabb dolog az, hogy emlékezzen három egyszerű dologra:

  • Az Android indítási folyamata két fő szakaszra oszlik: a Zygote előtt és utána. A Zygote elindítása előtt a rendszer inicializálja az alacsony szintű operációs rendszer összetevőit. Ezek olyan műveletek, mint a fájlrendszerek csatlakoztatása (beillesztése), alacsony szintű szolgáltatások indítása (például rild, amely a GSM modemmel való együttműködésért felelős, SurfaceFlinger, amely vezérli a képernyőn megjelenő dolgokat, vold, amely a csatlakoztatott fájlrendszerek). A Zygote elindítása után az inicializálás kizárólag az operációs rendszer 80%-át kitevő Java-komponenseken kezdődik. Ezt különösen a jól ismert Xposed keretrendszer használja, amely telepítéskor lecseréli az app_process-et a saját módosított verziójára, amely képes bármilyen Java osztály hívását elfogni, bármely másra lecserélni. Ez az oka annak, hogy az Xposed modulok széles körű módosítási lehetőségekkel rendelkeznek megjelenésés az Android viselkedését. Valójában nem változtatnak semmit a rendszeren, hanem egyszerűen arra kényszerítik, hogy saját komponensei helyett harmadik féltől származó összetevőket használjon.
  • A Java alkalmazások soha nem indulnak el a nulláról. Amikor a Zygote egy alkalmazás indítására vonatkozó kérést kap a Tevékenységkezelőtől, akkor nem indít el új virtuális gépet, hanem egyszerűen elágazódik, azaz lemásolja magát, majd elindítja a virtuális gép kapott példányán. a megfelelő alkalmazás. Ez a működési elv lehetővé teszi egyrészt a memóriafelhasználás minimálisra csökkentését, mivel a Linux másolás-írás módban másolja a memóriát egy elágazás közben (az új folyamat a régi memóriájára vonatkozik), másrészt jelentősen felgyorsítja. az alkalmazás elindítása: a folyamat elágazása sokkal gyorsabb, mint egy új virtuális gép elindítása és az alkalmazáshoz szükséges Java osztályok betöltése.
  • Az Android mindenhol intenteket használ. Az Android-összetevők soha nem használnak közvetlen eljárás- és osztályhívásokat az egymással való kommunikációhoz. Ehelyett egy üzenetrendszert (intents) használnak, amely a magas szintű biztonság mellett sok egyéb jóval is szolgál, mint például egy alkalmazás meghívása anélkül, hogy tudna róla semmit. Fentebb már írtam, hogy a desktop elindításához csak el kell küldenie a rendszernek az Intent.CATEGORY_HOME intentot, amelyre bármely, az indító funkciót ellátni képes alkalmazás válaszol. A „Share” gomb ugyanúgy működik, mint a rendszer sok más összetevője.

Mi az az Android, és miért van rá szükség? Sok kezdő, ha modern kütyüt vásárol, legyen az táblagép vagy okostelefon, hasonló kérdést tesz fel. Érdemes tisztázni a helyzetet, és kiemelni ennek a platformnak néhány előnyeit.

Megjelenés története

Manapság számos eszköz fut Android platformon. Ezt az operációs rendszert okostelefonokhoz és táblagépekhez, órákhoz és e-olvasókhoz, játékkonzolokhoz és még Google szemüvegekhez is tervezték. Talán hamarosan megjelennek az Android-támogatással rendelkező tévék és autók.

Az operációs rendszer létrehozásának története 2003-ban kezdődött. Ekkor alakult meg egy kis szervezet Android inc néven. Alapítói Rich Miner, Chris White, Andy Rubin és Nick Sears voltak. Már akkor is zajlottak olyan fejlesztések, amelyeket az új operációs rendszerben terveztek megvalósítani. A társaság tevékenységét a legszigorúbb titoktartás mellett végezte.

Hamarosan a szervezet elfogyott a pénzből, és az operációs rendszer fejlesztésében nem volt jelentős eredmény. Az eredmény hiánya miatt nem sikerült befektetőket vonzani. Egy idő után a Google is érdeklődni kezdett a fejlesztés iránt. 2005-ben a cég a keresőóriás tulajdonába került.

Ezt követően megalakult az Open Handset Alliance Corporation. Magában foglalja a mobileszközök vezető gyártóit. Az Android platformot először 2007-ben mutatták be. Mint tudod, a Linux kernelen alapul. Ennek az operációs rendszernek az első verziója 2008-ban jelent meg.

Mi az

Az Android az okostelefonokat, táblagépeket és sok más eszközt működtető operációs rendszer. Ennek az operációs rendszernek köszönhetően még a legolcsóbb telefon is képes lesz új képességekre szert tenni. A rendszer lehetővé teszi különféle telepítéseket hasznos programokat, amely segít a készülék összes funkciójának teljes körű kihasználásában.

Minden szükséges szoftver letölthető innen Play Market. Ez az oldal több mint 700 ezer programot tartalmaz. A széles választék lehetővé teszi, hogy bármilyen alkalmazást megtaláljon, amire szüksége van. Az operációs rendszer segítségével könnyedén elérheti az internetet, videófájlokat nézhet, kommunikálhat a következőn keresztül közösségi hálózatok, hallgasson zenét, készítsen fényképeket és azonnal tegye fel a fiókjába, vagy olvasson e-könyveket.

Érdemes megjegyezni, hogy az operációs rendszer teljesen ingyenes. Ráadásul nagyon könnyen használható. Nem sok időbe telik, hogy megértsd a felületet. Minden előnyének köszönhetően a világon a legelterjedtebbé vált. 2014-ben az ezen a platformon működő eszközök több mint 86%-át értékesítették.

Videó: Android telefon

OS alkalmazás

Az Android operációs rendszer megjelenése óta napjainkig a fejlesztők nem ülnek tétlenül. A platformot folyamatosan fejlesztik. Ugyanakkor funkcionalitása új funkciók bevezetésével bővül.

Fotó: Az Android 4.0 a legújabb mobil verzió

A platform annyira népszerűvé és kényelmesen használhatóvá vált, hogy sok modern kütyüket fejlesztő cég úgy döntött, hogy ezen az operációs rendszeren alapuló készülékeket bocsát ki.

Az Android használata nem olyan nehéz, mint amilyennek látszik. Segítségével szinte ugyanazokat a műveleteket hajthatja végre a készülékén, mint a számítógépén.

A rendszer számos lehetőséget biztosít szabványos alkalmazások. Ezek közé tartozik:

  • böngésző;
  • email;
  • naptár;
  • hangkeresés;
  • közösségi hálózatok;
  • navigátor;
  • időjárás;
  • hír.

Minden alkalmazás a Google-tól.

Egy másik jó plusz az a képesség, hogy saját maga testreszabhatja az asztalát. Hozzáadhat egy további képernyőt eszközéhez, ahol parancsikonokat vagy widgeteket helyezhet el. Bármilyen tetszőleges témát vagy háttérképet telepíthet, ezzel módosítva a felületet.

Miért jó

Ennek az operációs rendszernek számos előnye van. A főbbek a következők:


Az Android fejlesztés szakaszai

A platform első verziójának bemutatása után a következő év folyamán finomításra került, melynek eredményeként néhány rendszerhibát kijavítottak.

2009-ben öt frissített változatot mutattak be:


2010-ben további két verzió jelent meg. Ezek lettek:


A gyártók következő fejlesztése a 3.0 platform volt, amelyet 2011-ben mutattak be. Az új operációs rendszert kifejezetten táblagépekhez tervezték.


Ez a rendszer eltér a korábbiaktól:
  • továbbfejlesztett felület;
  • a linkek szinkronizálása a Google Chrome-mal;
  • külső billentyűzet támogatás;
  • most már lehetőség van a képernyőn megjelenő widgetek méretének módosítására;
  • többmagos processzoron dolgozik.

A fejlesztők nem álltak meg itt, és létrehozták az Android 4.0-t, amely az „Ice Cream Sandwich” nevet kapta. Ez a platform univerzálisabbá vált. Telefonon és tableten is használható.

Fotó: Android 4.0 „Ice Cream Sandwich”

Az operációs rendszer számos új funkciót és fejlesztést tartalmaz:

  • Az értesítési panel megváltozott;
  • hozzáadásra került az internetes forgalom szabályozásának módja;
  • hangdiktálási funkció jelent meg;
  • helyesírás-ellenőrző rendszer;
  • A kameraalkalmazás továbbfejlesztett - panoráma felvételi mód, különféle effektusok és képstabilizátor jelent meg;
  • a böngésző frissítve lett;
  • képernyőképek támogatása;
  • frissített biztonsági és modulvédelmi rendszer.

2012-ben és 2013-ban a gyártók a Jelly Bean operációs rendszer fejlesztésén dolgoztak..

A következő verziók 4.1, 4.2, 4.3 voltak. Az új változtatások elsősorban a felület sebességét érintették. Az új fejlesztéseknek köszönhetően nőtt a termelékenység. Most a GPU és a központi processzor párhuzamosan működik.

A platform frissített verziója a következőket tartalmazza:


2013 végén egy másikat jelentettek be Android verzió 4.4 "Kitkat". Az új platformot úgy optimalizálták, hogy olcsóbb eszközökön futhasson RAM 512 MB.

Itt is van néhány változás:

  • Most az okostelefonokban azok a kapcsolatok, akikkel a felhasználó gyakrabban kommunikál, a lista tetején helyezkednek el;
  • a hangsegéd mindig aktív;
  • automatikus hívóazonosító;
  • a feliratok most megjelennek a videolejátszóban;
  • a fájlletöltő frissített kialakítású;
  • lépésszámláló alkalmazások támogatása;
  • Számos hibát és hiányosságot kijavítottak.

A cég legújabb fejlesztése az 5-ös verzió. Az új operációs rendszer neve "Lollipop". A fő kiemelés az anyagkialakítás volt, amely a sokoldalúságával tűnik ki.

A versenyzők

A fő versenytársak, amelyekkel az Android platformnak meg kell küzdenie a pálmáért:

  • Apple iPhoneOS;
  • Microsoft Windows Mobile;
  • RIM BlackBerry OS;
  • Maemo/MeeGo;
  • Samsung Bada OS;
  • Palm webOS;
  • Symbian OS.

Mára az Android a világ legelterjedtebb mobilplatformja, mint az iOS. A tervek szerint azonban hamarosan bemutatják az új Ubuntu Phone OS-t. Talán ez lesz az Android másik komoly versenytársa.

Android készülékek

2008-ban megjelent az első olyan eszköz, amely Androidon futott. A készüléket a HTC fejlesztette ki. Ez egy HTC Dream nevű okostelefon volt. Ezt követően több telefongyártó is kifejezte gyártási szándékát mobil eszközök támogatja ezt az operációs rendszert.

Hamarosan bejelentették az Android platformon alapuló táblagépet. 2009-ben egy ezen az operációs rendszeren futó képkeret jelent meg a piacon. Ráadásul 2 év után a Blue Sky szervezet kifejlesztett egy új karórát, ami az i’m Watch nevet kapta. Ők is támogatják ezt a rendszert.

A fényképezőgépgyártók is úgy döntöttek, hogy lépést tartanak, és bemutatták a világ első kameráját, amely Androidon fut.

Az új terméket a Nikon adta ki. Ezenkívül játékkonzolok, e-könyvek és médialejátszók működnek ezen a platformon. Várhatóan hamarosan további eszközök is megjelennek.

Ilyen fejlődési ütem mellett az Android platform abszolút vezetővé válik a többi operációs rendszer között, minden versenytársat maga mögött hagyva.