Architektura operačního systému Android ppt. Kde jsou uložena data aplikací pro Android?

V tomto článku se podíváme na architekturu aplikací pro Android.

Upřímně řečeno, oficiální Google na toto téma mi moc nepomůže. Při podrobné odpovědi na otázku „jak“ nevysvětluje „co“ a „proč“ vůbec. Takže tady je moje verze a doufám, že přinese trochu jasnosti. Oh, mimochodem, plně podporuji čtení článků Google, protože obsahují užitečné informace, což nehodlám opakovat.

Architektura OS Android - trocha historie

Jak už to v IT bývá, mnoho věcí nelze vysvětlit izolovaně od historie konkrétního softwaru. Proto se musíme vrátit k počátkům operačního systému Android.

Vývoj OS Android zahájila v roce 2003 mladá společnost Android Inc. V roce 2005 byla tato společnost koupena společností Google. Domnívám se, že v tomto období byly definovány hlavní rysy architektury Android. To není jen zásluha Android Inc; Architektonické koncepty a finanční zdroje Google měly rozhodující vliv na architekturu Androidu. Níže uvedu několik příkladů.

Pokud si vzpomínáte, roky 2003-2005 byly ve znamení zvýšené pozornosti k aplikacím AJAX. Myslím, že to mělo zásadní vliv na architekturu Androidu: v mnoha ohledech se blíží architektuře typické AJAXové aplikace než desktopové GUI aplikaci napsané v Javě, C#, C++, VB atd.

Nevím, proč se to stalo. Hádám, že s tím někdo v Googlu přišel v době, kdy byly za řešení všech problémů považovány Rich Internet Applications (RIA) v duchu Google Docs nebo Gmail. Podle mého názoru nelze tento nápad nazvat ani dobrým, ani špatným. Nezapomeňte, že aplikace pro Android se od aplikací pro stolní počítače velmi liší.

Vliv architektonické filozofie Eclipse je patrný ve volbě implementace GUI, která je více podobná SWT než Swing.

Standardy návrhu kódu Android obsahují „maďarskou notaci“, zrozenou ve zdech MS. Dá se předpokládat, že ten, kdo tyto normy napsal, dříve vyvíjel pro Windows.

Architektonické vrstvy Androidu
operační sál systém Android má tři velmi odlišné a silně oddělené úrovně:
  1. Je založen na upravené a okleštěné verzi Linuxu, jak jsem zmínil v jednom ze svých předchozích článků.
  2. Nad linuxovou vrstvou je vrstva aplikační infrastruktury, která obsahuje virtuální stroj Dalvik, webový prohlížeč, databázi SQLite, některé infrastrukturní „berličky“ a Java API.
  3. A nakonec zapsaná úroveň Google Android-aplikace. Obecně řečeno, jsou rozšířením vrstvy infrastruktury, protože vývojář může tyto aplikace nebo jejich části používat jako stavební bloky pro svůj vlastní vývoj.
Podívejme se na tyto vrstvy jednu po druhé a podrobněji.

Úroveň Linuxu

Představte si, že jste architekt v mladé firmě. Musíte vyvinout OS pro nový typ zařízení. Co budeš dělat?

Zhruba řečeno, máte dvě možnosti: implementovat své vlastní nápady, začít od nuly, nebo použít stávající OS a přizpůsobit ho svým zařízením.

Implementace od začátku zní pro programátory vždy vzrušující. V těchto chvílích všichni věříme, že tentokrát budeme dělat všechno lépe než ostatní a dokonce lépe než my sami předtím.

To však není vždy praktické. Například použití linuxového jádra výrazně snížilo náklady na vývoj (v některých případech již možná přehnaně vysoké). Souhlas, pokud se někdo rozhodne vytvořit něco, co se podobá Linuxové jádro ve svém současném stavu by potřeboval několik milionů dolarů.

Pokud provozujete Android Inc, pak z definice nemůžete mít tolik peněz. Pokud provozujete Google, budete mít takové peníze, ale pravděpodobně si dvakrát rozmyslíte, zda je utratíte za vytvoření vlastního OS. Také strávíte několik let, než dosáhnete dneška. Stavy Linuxu; Několik let zpoždění může být na vstup na trh pozdě.

V takové situaci Apple společnost se rozhodl postavit Mac OS založený na Free BSD. Android Inc se rozhodl použít Linux jako základ pro Android. Zdroje Free BSD i Linuxu jsou volně dostupné a poskytují dobrý základ pro jakýkoli vývoj, ať už jde o Apple nebo Google.

Ale v té době běh standardní Linux nebylo možné na mobilním zařízení (toto již neplatí). Zařízení měla příliš málo RAM a energeticky nezávislou paměť. Procesory byly výrazně pomalejší ve srovnání s počítačovými procesory, které obvykle používají Linux. V důsledku toho se vývojáři Androidu rozhodli minimalizovat Požadavky na systém Linux.

Pokud uvažujeme Linux na vysoké úrovni, pak jde o kombinaci jádra (bez kterého se neobejdete) a mnoha dalších, volitelných částí. Můžete dokonce spustit jediné jádro bez čehokoli jiného. Google je tedy v každém případě nucen používat linuxové jádro jako součást operačního systému Android. Kromě toho byly zváženy volitelné části a vybrány ty nejnutnější. Byl například přidán síťový firewall IPTables a Ash shell. Je zvláštní, že to byl Ash, který byl přidán, a ne Bash, navzdory skutečnosti, že ten je o řád silnější; Toto rozhodnutí bylo pravděpodobně založeno na skutečnosti, že Ash je méně náročný na zdroje.

Vývojáři Androidu upravili linuxové jádro a přidali podporu pro hardware používaný v mobilní zařízení ach a nejčastěji nepřístupné na počítačích.

Volba Linuxu jako základu měla obrovský dopad na všechny aspekty operačního systému Android. Vytváření Androidu je v podstatě variací procesu vytváření Linuxu. kód Android je spravován git (nástroj určený pro správu kódu Linuxu). A tak dále.

I když to všechno může být zajímavé, s největší pravděpodobností se nikdy nedotknete všech těchto konkrétních bodů, pokud je vaším cílem jednoduše vyvíjet aplikace pro Android. Jedinou výjimkou může být recenze souborový systém pomocí příkazů ash. Hlavní věc, kterou byste měli vědět při vývoji aplikací pro Android, je úroveň aplikační infrastruktury.

Můžete se ptát, co dělat, když potřebujete vyvinout nativní aplikaci pro Android? Google důrazně nedoporučuje toto dělat. Technicky to samozřejmě možné je, ale v budoucnu nebudete moci tuto aplikaci distribuovat běžným způsobem. Dobře si tedy rozmyslete, než se pustíte do vývoje nativního Androidu, pokud samozřejmě nepracujete na Android Open Source Project (AOSP), tzn. Samotný OS Android.

Vrstva aplikační infrastruktury

Navzdory určitým podobnostem mezi Apple iOS a Android OS existují významné rozdíly mezi architektonickými řešeními na úrovni infrastruktury obou OS.

Apple se rozhodl použít Objective-C jako programovací jazyk a runtime aplikace pro iOS. Objective-C se zdá víceméně přirozenou volbou pro OS založený na Free BSD. Objective-C si můžete představit jako běžný C++ s vlastním preprocesorem, který přidává některé specifické lingvistické konstrukce. Proč nemůžeme použít standardní C++, ve kterém je napsáno Free BSD? Zdá se mi, že důvodem je to, že Apple se snaží dělat vše ve svém vlastním „Apple“ stylu.

Základní myšlenkou je, že aplikace pro iOS jsou napsány víceméně ve stejném jazyce jako OS za nimi.

Aplikace pro Android jsou v tomto smyslu velmi odlišné. Jsou napsány v Javě, což je úplně jiná technologie než C++ (i když syntaxe je zděděná z C++).

Myslím, že hlavním důvodem je potřeba, aby stejná aplikace běžela na jiném hardwaru. Tento problém se vyskytuje pouze v OS Android; Kluci z Applu tento problém nemají. iOS běží pouze na vlastním hardwaru a Apple má nad celým procesem úplnou kontrolu. U Androidu je tomu naopak: Google nemá žádnou kontrolu nad výrobci hardwaru. Například operační systém Android běží na procesorech x86, ARM a Atom (komentáře naznačují, že x86 obsahuje Atom a Android běží na x86, ARM, PPC a MIPS – poznámka překladatele). Na binární úrovni jsou tyto architektury nekompatibilní.

Pokud by architekti OS Android zvolili stejnou cestu jako architekti Applu, byli by vývojáři aplikací pro Android nuceni distribuovat více verzí stejné aplikace současně. To by byl vážný problém, který by mohl vést ke krachu celého projektu Android.

Aby mohla stejná aplikace běžet na různém hardwaru, použil Google kontejnerovou architekturu. V takové architektuře je binární kód prováděn softwarovým kontejnerem a je izolován od detailů specifického hardwaru. Příklady zná každý – Java a C#. V obou jazycích je binární kód nezávislý na hardwaru a je spouštěn virtuálním strojem.

Samozřejmě existuje i jiný způsob, jak dosáhnout hardwarové nezávislosti na binární úrovni. Jednou z možností je použití hardwarového emulátoru, známého také jako QEMU. Umožňuje emulovat například zařízení s procesorem ARM na platformě x86 a podobně. Google by mohl použít C++ jako jazyk pro vývoj aplikací uvnitř emulátorů. Google ve skutečnosti tento přístup používá Emulátory Androidu, které jsou postaveny na QEMU.

Je dobře, že se nevydali touto cestou, protože pak by někdo musel provozovat OS na emulátoru, což vyžaduje mnohem více prostředků a ve výsledku by se snížila rychlost. Za úspěch nejlepší výkon emulace byla ponechána pouze tam, kde se jí nebylo možné vyhnout, v našem případě – v aplikacích pro Android.

Ať je to jakkoli, Google dospěl k rozhodnutí použít Javu jako hlavní jazyk pro vývoj aplikací a jejich spouštěcí prostředí.

Myslím, že to bylo zásadní architektonické rozhodnutí, které odlišilo Android od ostatních mobilních OS. Na bázi Linuxu aktuálně prezentované. Pokud je mi známo, žádný z nich nemá kompatibilitu binárního kódu na úrovni aplikace. Vezměme si jako příklad MeeGo. Používá C++ a rámec Qt; Navzdory skutečnosti, že Qt je multiplatformní, nezmizí potřeba dělat různá sestavení pro různé platformy.

Po výběru Javy bylo dalším krokem rozhodnutí, který virtuální stroj (JVM) použít. Vzhledem k omezeným zdrojům bylo použití standardního JVM obtížné. Jedinou možnou volbou bylo použití Java ME JVM, který je určen pro mobilní zařízení. Štěstí Googlu by však nebylo úplné bez vývoje vlastního virtuálního stroje a zrodil se Dalvik VM.

Dalvik VM se liší od ostatních virtuálních strojů Java v následujících ohledech:

  • K ukládání binárního kódu používá speciální formát DEX, na rozdíl od formátů JAR a Pack200, které jsou standardem pro ostatní virtuální stroje Java. Google uvedl, že binární soubory DEX jsou menší než JAR. Myslím, že stejně snadno mohli použít Pack200, ale rozhodli se jít vlastní cestou.
  • Dalvik VM je optimalizován pro spouštění více procesů současně.
  • Dalvik VM používá architekturu založenou na registrech oproti architektuře založené na zásobníku v jiných JVM, což má za následek zvýšenou rychlost provádění a menší binární velikosti.
  • Používá vlastní sadu instrukcí (ne standardní bytecode JVM)
  • Je možné spustit (v případě potřeby) několik nezávislých aplikací pro Android v jednom procesu
  • Spouštění aplikací může „přirozeně“ zahrnovat více procesů VM Dalvik (co to znamená, probereme později). Přidáno na podporu tohoto:
    • Speciální mechanismus serializace objektů založený na třídách Parcel a Parcelable. Funkčně má stejné cíle jako Java Serializable, ale výsledná data jsou menší a potenciálně tolerantnější vůči verzování tříd.
    • Speciální způsob volání mezi procesy (IPC) založený na jazyku Android Interface Definition Language (AIDL).
  • Před Androidem 2.2 nepodporoval Dalvik VM kompilaci JIT, což byl vážný výkon. Počínaje verzí 2.2 se rychlost spouštění často používaných aplikací znatelně zvýšila.
Lidé z Google také přepracovali standardní balíčky Java JDK API. Některé z nich odstranili (například vše, co souvisí se Swingem) a přidali některé své – jejich název začíná na „android“.

Přidali také několik balíčků s otevřeným zdrojovým kódem, které nejsou součástí standardního JDK: Bouncy Castle crypto API, HTTPClient s podporou rozdělování HTTP/HTTPS na straně klienta.

Google také přidal webový prohlížeč do vrstvy aplikační infrastruktury. Není to plnohodnotný Google Chrome pro mobilní zařízení, ale je mu velmi blízký, protože je založen na stejném enginu WebKit a využívá JavaScriptový engine Chrome. Koneckonců, je to extrémně moderní a high-tech prohlížeč. Lze jej integrovat do jakékoli aplikace pro Android.

To je pro dnešek vše. V příštím článku se zaměříme na architekturu aplikací pro Android.

Aktualizace od překladatele. Originál používal nesprávnou terminologii. Děkuji všem, kteří na tyto chyby upozornili.

OS Android - operační systém Pro mobilní telefony, tabletové počítače a netbooky založené na jádře Linuxu. Původně byl vyvinut společností Android Inc., kterou poté koupil Google. První verze Google Android OS byla vydána v září 2008. Platforma Android se na konci roku 2010 stala nejprodávanějším OS pro chytré telefony.

Android OS je sada open source softwaru pro mobilní zařízení od Google, která zahrnuje operační systém a sadu základních multiplatformních aplikací. Aplikace OS Android jsou programy s bajtovým kódem pro virtuální stroj Dalvik, který je součástí mobilní platforma Android.

Architektura operačního systému Android

Když si představíme komponent Model Android ve formě hierarchie (obr. 2), pak lze rozlišit 4 hlavní úrovně:

úroveň jádra Linuxu;

Úroveň knihoven;

Úroveň běhu (Android Runtime);

Úroveň aplikačního rámce (ApplicationFramework);

Úroveň aplikací.

Úroveň linuxového jádra. Úplně dole bude jádro operačního systému umístěno v jádře OS Android je založen na OS Linuxové verze 2.6, takže platforma má přístup ke službám jádra systému, jako je správa paměti a procesů, zabezpečení, sítě a ovladače. Jádro také slouží jako abstraktní vrstva mezi hardwarem a software.

Obr.2

Úroveň knihoven: „Nad“ jádrem se jako middleware nachází sada knihoven navržených k řešení běžných problémů, které vyžadují vysokou efektivitu. To znamená, že je to tato úroveň, která je zodpovědná za poskytování implementovaných algoritmů pro vyšší úrovně, podporu formátů souborů, kódování a dekódování informací, kreslení grafiky a mnoho dalšího. Knihovny jsou implementovány v C/C++ a kompilovány pro konkrétního uživatele Hardware zařízení, se kterými jsou dodávány výrobcem v předinstalované podobě.

Uveďme některé z nízkoúrovňových knihoven:

SurfaceManager - správce povrchu řídí přístup k zobrazovacímu subsystému 2D a 3D grafických vrstev.

Media Framework - knihovny, pomocí kterých může systém nahrávat a přehrávat audio a video data a také zobrazovat statické obrázky.

SQLite je lehký a vysoce výkonný relační DBMS používaný v Androidu jako hlavní databázový stroj.

3D knihovny - knihovny pro práci s 3D grafikou.

FreeType je knihovna určená pro práci s fonty.

LibWebCore je jádrem vestavěného webového prohlížeče.

SGL (ScalableGraphicsLibrary) - knihovna pro práci s 2D grafikou.

SSL - knihovny pro podporu stejnojmenného kryptografického protokolu.

libc - knihovna standardních volání jazyka C.

Úroveň běhu (Android Runtime). Na stejné úrovni je Android Runtime – běhové prostředí aplikační programy. Jeho klíčovými součástmi je sada standardních knihoven a virtuální stroj Dalvik. Každá aplikace pro Android běží ve své vlastní instanci virtuálního stroje Dalvik. Všechny běžící procesy jsou tak izolované od operačního systému i od sebe navzájem. Architektura Android Runtime je taková, že programy fungují výhradně v prostředí virtuálního stroje. Díky tomu je jádro operačního systému chráněno před možným poškozením ze strany jeho ostatních součástí. Chybový kód nebo malware proto nebudou moci poškodit operační systém Android a zařízení na něm založené. Tato ochranná funkce spolu s implementací programový kód, je jedním z klíčových pro Android Runtime.

Úroveň aplikačního rámce (ApplicationFramework). OS Android umožňuje plné využití API (aplikační programovací rozhraní – soubor hotových tříd, procedur, funkcí, struktur a konstant) používaného v aplikacích jádra. Architektura je postavena tak, že jakákoliv aplikace může využívat již implementované schopnosti jiné aplikace za předpokladu, že tato otevře přístup k využití její funkčnosti. Architektura tedy implementuje princip opětovného použití komponent OS a aplikací.

Základem všech aplikací je soubor systémů a služeb:

Správce činností řídí životní cyklus aplikací a poskytuje navigační systém pro historii práce s akcemi.

Správce oken spravuje okna a poskytuje aplikacím více vysoká úroveň Abstrakce knihovny Surface Manager.

Poskytovatelé obsahu jsou služby, které aplikacím umožňují přístup k datům z jiných aplikací a také poskytují přístup k jejich vlastním datům.

ViewSystem je bohatá sada rozšiřitelných pohledů, která vám pomáhá vytvářet vzhled aplikací, včetně komponent, jako jsou seznamy, tabulky, vstupní pole, tlačítka atd.

NotificationManager umožňuje libovolné aplikaci zobrazovat vlastní upozornění ve stavovém řádku.

Správce balíčků spravuje nainstalované balíčky na vašem zařízení a je zodpovědný za instalaci nových a odstranění stávajících.

Telephony Manager obsahuje API pro interakci s funkcemi telefonování (hovory, SMS atd.)

Správce zdrojů (ResourceManager) je navržen pro přístup k řetězcům, grafice a dalším typům zdrojů.

Správce polohy, který aplikacím umožňuje získat aktualizované údaje o aktuální geografické poloze zařízení

Úroveň aplikací. V horní části balíčku softwaru pro Android je aplikační vrstva. To zahrnuje sadu základních aplikací, které jsou předinstalované v OS Android. Obsahuje například prohlížeč, poštovní klient, program pro odesílání SMS, mapy, kalendář, správce kontaktů a mnoho dalších. Seznam integrovaných aplikací se může lišit v závislosti na modelu zařízení a Verze pro Android. A kromě toho základní sada Aplikační úroveň zahrnuje všechny aplikační aplikace pro platformu Android, včetně těch, které si nainstaloval uživatel.

Operační systém Android se skládá ze sady komponent, jako jsou aplikace, aplikační framework, knihovny, runtime prostředí a linuxové jádro. Na obrázku je schéma hlavních součástí operačního systému Android.

Obrázek 2.1 - Hlavní součásti OS Android

Aplikační vrstva

OS Android obsahuje sadu základních aplikací: email a SMS klienty, kalendář, různé mapy, prohlížeč, program pro správu kontaktů a mnoho dalšího. Všechny aplikace běžící na platformě Android jsou napsány v Javě.

Vrstva aplikačního rámce

OS Android umožňuje plné využití API používaného v aplikacích jádra. Architektura je postavena tak, že jakákoliv aplikace může využívat již implementované schopnosti jiné aplikace za předpokladu, že tato otevře přístup k využití její funkčnosti. Architektura tedy implementuje princip opětovného použití komponent OS a aplikací.

Základem všech aplikací je soubor systémů a služeb:

    manažer akcí ( AktivitaManažer) řídí životní cyklus aplikací a poskytuje navigační systém pro historii práce s akcemi;

    poskytovatelé obsahu ( ObsahPoskytovatelé) jsou služby, které aplikacím umožňují přístup k datům z jiných aplikací a také poskytují přístup k jejich vlastním datům;

    systém zastoupení ( PohledSystém) je bohatá sada pohledů s rozšiřitelnými funkcemi, která slouží k vytvoření vzhledu aplikací, včetně komponent, jako jsou seznamy, tabulky, vstupní pole, tlačítka atd.;

    správce zdrojů ( ZdrojManažer) je určen pro přístup k řetězcovým, grafickým a dalším typům zdrojů;

    správce oznámení ( OznámeníManažer) umožňuje libovolné aplikaci zobrazovat vlastní upozornění ve stavovém řádku.

Úroveň knihovny

Platforma Android obsahuje sadu knihoven C/C++ používaných různými součástmi OS. Pro vývojáře je přístup k funkcím těchto knihoven realizován pomocí ApplicationFramework. Níže jsou uvedeny některé z nich:

    SystémCknihovna- BSD implementace standardní systémové knihovny C (libc) pro vestavěná zařízení založená na Linuxu;

    MédiaKnihovny– knihovny založené na PacketVideo’sOpenCORE, navržené pro podporu přehrávání a nahrávání populárního zvuku a video formáty(MPEG4, H.264, MP3, AAC, AMR, JPG, PNG atd.);

    LibWebCore– jádro vestavěného webového prohlížeče;

    PovrchManažer– správce povrchu řídí přístup k zobrazovacímu subsystému 2D a 3D grafických vrstev;

    SGL ( ScalableGraphicsLibrary ) – knihovna pro práci s 2D grafikou, založená na knihovně SDL (SimpleDirectMediaLayer);

    3Dknihovny– knihovny pro práci s 3D grafikou, založené na OpenGLES 1.0 API;

    FreeType– knihovna určená pro práci s fonty.

    SQLite– odlehčený systém správy relačních databází.

Úroveň běhu

Operační systém Android obsahuje sadu základních knihoven, které poskytují většinu funkcí základních jazykových knihoven Java.

Platforma využívá optimalizovaný, registrově orientovaný virtuální stroj Dalvik, na rozdíl od něj je standardní virtuální stroj Java orientován na zásobník. Každá aplikace běží ve vlastním procesu s vlastní instancí virtuálního stroje. Virtuální stroj Dalvik používá formát DalvikExecutable(*.dex), který je optimalizován pro minimální využití paměti aplikace. To je zajištěno takovými základními funkcemi linuxového jádra, jako je vytváření vláken a nízkoúrovňová správa paměti. Bytový kód Java, ve kterém jsou vaše aplikace napsány, je zkompilován do formátu dex pomocí nástroje dx, který je součástí sady SDK.

Úroveň linuxového jádra

Operační systém Android je založen na operačním systému Linux verze 2.6, čímž poskytuje systémové služby jádra, jako je správa paměti a procesů, zabezpečení, sítě a ovladače. Jádro také slouží jako abstraktní vrstva mezi hardwarem a softwarem.

V tomto článku se dozvíte, jaké složky (adresáře) v Androidu existují, jaké soubory se v nich nacházejí, za co jsou tyto složky a soubory zodpovědné a proč jsou potřeba.

Předmluva o struktuře

Mnoho lidí má počítač a je na nich nainstalován operační systém Windows. Každý dobře ví, že v tomto OS je vše distribuováno mezi disky:

C:- na tento disk existuje systém

D:— pro osobní soubory (disk nemusí existovat, pokud není „rozdělený“)

E: - Z:- flash disky, přenosné pevné disky, CD nebo DVD mechaniky.

Ve Windows je vše distribuováno na různých jednotkách. V UNIX/Linux, který zahrnuje Android (stejně jako BSD, který zahrnuje Mac OS X), vše vypadá trochu jinak. Struktura souborů je stromová. Možná to teď není jasné, ale při čtení článku to bude jasnější.

Také stojí za to vědět, že Android, stejně jako Linux, na rozdíl od Windows velmi rozlišuje velká a malá písmena. Například složka Name, Name, name, NAME jsou 4 různé složky, zatímco Windows mohou vytvořit pouze jednu složku s tímto názvem.

Aby bylo jasnější, o čem mluvíme, doporučuje se nainstalovat správce souborů Kořenový prohlížeč.

Struktura a účel složek a souborů Android

Jak bylo uvedeno výše, struktura má stromový vzhled. Každý strom má kořen a také jej má UNIX/Linux. Kořen je výchozím bodem struktura souboru, od kořene systém zaroste složkami a soubory. Kořen v UNIX/Linux je označen jako znak:

/

podrobnosti o dev oddílu

/dev/— tato část obsahuje informace o systémových zařízeních a souborech.

[kolaps]

podrobnosti o datové sekci

sekce /data/— uživatelskou sekci, ve které se nacházejí nainstalované aplikace, Osobní nastavení

složka /data/app— zde jsou umístěny nainstalované aplikace a hry.

složka /data/app-libdalší knihovny nutné pro práci určité aplikace(v nových verzích Androidu).

složka /data/dalvik-cache- vyrovnávací paměť pro Java funguje Stroje Dalvik, které jsou „motorem“ v Androidu a jsou zodpovědné za spouštění a spouštění aplikací.

složka /data/data— tato složka obsahuje jednotlivé nastavení každý Zvyk aplikace, knihovny a další soubory potřebné soubory za jejich práci.

složka /data/system/— tato sekce obsahuje globální nastavení uživatelského prostředí, synchronizace, účtů, blokování.

soubory gesto.key, locksettings.db, locksettings.db-shm, locksettings.db-wa l - grafický klíč, PIN kód.

[kolaps]

podrobnosti o sekci předběžného načtení

sekce /preload/— tato sekce obsahuje další soubory a složky, které jsou zrcadleny do sekce /Systém/(tato sekce není dostupná ve všech Androidech, hlavně v Samsungu).

[kolaps]

podrobnosti o systémové sekci

sekce /systém/— tato část obsahuje systémové složky a soubory nezbytné pro fungování systému Android.

složka /system/app— zde jsou umístěny systémové aplikace a služby (v novém OS služby Android aplikace přesunuty do jiné složky priv-app).

složka /system/bin A /system/xbin— složka obsahuje soubory a odkazy na spustitelné binární soubory.

soubor /system/xbin/su— soubor odpovědný za práva roota.

složka /system/camerdata— tato složka obsahuje soubory zodpovědné za provoz fotoaparátu.

složka /system/atd— tato složka obsahuje konfigurační soubory potřebné při načítání OS a také nezbytné při provozu různých programů.

složka /system/init.d— tato složka obsahuje skripty, které mohou ovlivnit provoz systému.

soubor /system/etc/hosts— soubor zodpovědný za blokování a přesměrování webových adres.

soubor /system/etc/apns.conf— soubor s informacemi o přístupových bodech k Internetu (APN).

soubor /system/etc/gps.conf— Nastavení GPS.

složka /system/fonts- složka se systémovými fonty.

složka /system/framework- složka s „procesy“ systému Android.

složka /system/lib/- knihovny systémové aplikace a služeb.

složka /system/lib/modules- systémové ovladače.

složka /system/media- složka s systémové zvuky a animace zapnutí.

soubor /system/media/bootanimation.zip— spustitelný archiv s animací načítání.

složka /system/priv-app— složka se službami/aplikacemi Android.

soubor /system/build.prop— konfigurační soubor, pomocí kterého můžete změnit nastavení systému.

[kolaps]

podrobnosti o sekci proc

/proc oddíl— virtuální oddíl obsahující informace o jádře a jeho konfiguraci.

Architektura OS Android zajímá především vývojáře, kteří o něm již vědí vše, proto se pokusíme tyto informace zprostředkovat běžným uživatelům zajímavou a srozumitelnou formou, aby věděli, jak jejich oblíbený systém funguje . Není pochyb o tom, že je oblíbená mnoha. Někteří ale stále plně nechápou všechny procesy, proč a proč má smysl zařízení odemykat, zbavovat jej záruky a zabezpečení.

První věc, kterou musíte vědět, je, že Android je variantou operačního systému Linux a alespoň zde tento systém našel své domácí místo. Uvnitř systému je na jeho nejzákladnější úrovni upravené linuxové jádro, které, stejně jako v velké systémy, je třeba často aktualizovat. Mnohem častěji než v jiných mobilních operačních systémech, jinak přijdete o možnost využívat nové funkce, senzory, aplikace a další užitečné věci. Jádro pracuje s aplikacemi a ovladači přes systémové API a pouze na této úrovni ovladačů a systémových aplikací lze psát programy v C++. Střední část stroje zabírá platforma, která se dá přirovnat k .NET od Microsoftu. Je řízen jazykem Java. Každá uživatelská aplikace spustí proces, když pro ni platforma vytvoří virtuální spouštěcí prostředí. V tomto okamžiku jsou Java aplikace ve formě kódu třídy a knihovny automaticky přeloženy do univerzálního bajtkódu spouštěného na bajtovém stroji Delvik. Tento stroj má mnoho společného s Java JVM.

Aplikace fungují v prostředí izolovaném od sebe a zachycují pouze zdroje, které potřebují. To je zásadní rozdíl např. od programů na PC, kde všechny prostředky dokáže zabavit jakýkoli program. Přestože jsou aplikace optimalizovány pro kvalitu kódu a vzájemně izolované, mají nejen prioritu preemptivního multitaskingu, ale také způsoby, jak sdílet data a soubory tím, že jim přiřadíme stejné identifikátory. Tímto způsobem můžete zajistit, aby související programy utrácely minimum zbytečných zdrojů při přístupu k rozhraním API prostřednictvím platformy, stejně jako ke sdíleným profilovým souborům, seznamům kontaktů atd. Zajímavostí je, že do Delviku můžete podstrčit další Java kód, který virtuální stroj přijme jako nativní. To vám umožňuje implementovat četné virtuální vývojové systémy, používat nové programovací jazyky a dokonce změnit aplikační rámec na alternativní možnosti – pokud dokáže generovat bajtový kód a vyhovuje volání API.

Platforma, neboli framework, pracuje s daty jednotným způsobem, převádí je do databázového formátu SQLite – stejného formátu, se kterým pracuje například Mozilla na PC. Přístup k síti je řízen jedním optimalizovaným pro mobilní zařízení Prohlížeč Chrome. Pro vytvoření bezchybné grafiky podporuje API technologii OpenGL ES v.3.0 a také celou řadu nenasytných grafických a video formátů a kontejnerů pro jejich uložení, včetně h.264, mkv, MP4 atd.

Komunikace s ostatními zařízeními – drátová (USB, paměťové karty) i bezdrátová (BT, IR, Wi-Fi, EDGE/3G/LTE). Mnoho senzorů je vázáno na příjem signálů z vnějšku systému: GPS, akcelerometr, kompas, fotografie, senzor tmy, fitness senzory.

V továrně stav Android je velmi stabilní a bezpečný, ale neumožňuje uživateli přejít za stránky, kde lze zakoupit alternativní programy. Proto je stejně jako u nízkoúrovňového programování zbaven ochrany, po které je nutné do systému nainstalovat antivirový software.