Základ architektury OS Android
Aktivity
Hlavní stavební bloky aplikací OS Android se nazývají aktivity. Každá aktivita představuje jednu obrazovku aplikace. „Aktivity můžete chápat jako analogii oken či dialogů aplikace pro stolní počítač.“ To umožňuje, že se jednotlivé obrazovky a jejich části dají vyvolat i z jiné než mateřské aplikace.
Každá aktivita má svůj životní cyklus, který se skládá ze čtyř částí. Aplikace je:
Aktivní (Running) – aktivita spuštěná uživatelem, běží v popředí
Pozastavená (Paused) – aktivita byla narušena upozorněním. Je spuštěná uživatelem, běží a je čitelná, překrývá ji však okno s upozorněním - například oznámení o příchozí zprávě SMS
Zastavená (Stopped) – aktivita je spuštěna uživatelem, ale byla skryta jinými aplikacemi, které byly spuštěny po ní, s uživatelem může stále komunikovat pomocí upozornění
Mrtvá (Destroyed) – aktivita mohla být násilně ukončena (například kvů- li nedostatku paměti), nebo ji uživatel vůbec nespustil
Spouštění a ukončování aktivit funguje na principu LIFO39, kdy se aplikace po spuštění dostane na vrchol pomyslného balíku karet. Pokud uživatel právě spuštěnou aktivitu zavře nebo se vrátí o krok zpět, vždy se mu objeví aktivita dříve spuštěná.
Dodavatelé obsahu (Content providers)
Data uložená v zařízení mohou být přístupná několika rozličným aplikacím. Zá- kladem vývojového modelu OS Android je zpřístupnit data a obrazovky aplikace i jiným aplikacím. K tomu slouží Dodavatel obsahu, který zajišťuje kontrolu pří- stupu k uživatelským datům. Usnadní to tak práci programátorům, kteří mohou používat aktivity a data jiných dříve vytvořených aplikací.
Služby (Services)
Služba je kód, který je spuštěn na pozadí. Aktivity a Dodavatele obsahu můžeme kdykoliv vypnout a také nedisponují dlouhou životností. Oproti nim jsou služby neustále aktivní. Jsou nezávislé na aktivitách, kterými byly spuštěny. Využívají se například při přehrávání hudby, kdy uživatel hudbu spustí a poté ukončí uživatelské rozhraní, ale chce, aby hudba stále hrála na pozadí, k detekci aktualizací RSS, nebo ke kontrole aktualizace aplikací z Android Marketu.
Záměry (Intents)
Aplikace v OS Android mezi sebou komunikují pomocí Záměrů. Jsou to zprávy systému, které upozorňují sdružené aplikace, že se něco změnilo. Mezi takové změny patří například hardwarová konfigurace (např. nedostatek místa v pamě- ti), upozornění na příchozí data (např. příchozí volání) nebo samotné události aplikace (např. selhání aplikace).
AndroidManifest
AndroidManifest je řídícím souborem psaným ve značkovacím jazyce XML (více v kapitole 5.3.1 ), který popisuje celou aplikaci a její Aktivity, Služby, Dodavatele obsahu a Záměry aplikace. Obsahuje také soupis všech oprávnění, která říkají, ke kterým funkcím telefonu má aplikace přístup. Ty si poté může uživatel přečíst v informacích o aplikaci v Android Marketu nebo v nastavení aplikací ve svém telefonu. V AndroidManifest se také dozvídáme, jaké má naše aplikace Aktivity a jakou minimální verzi SDK musí naše zařízení mít, aby aplikace korektně fungovala. Součástí AndroidManifest.xml je package – jméno balíčku, ve kterém se skrývá celá aplikace. Aby mohla být aplikace distribuována v Android Marketu, musí být jméno balíčku jedinečné. Jméno balíčku také slouží jako Android Package – ZIP balík s koncovkou .apk, který slouží instalaci a šíření aplikací na zařízení s OS Android. Jsou v něm uloženy zkomprimované zdrojové soubory aplikace.
Při vytváření aplikace DetectiveDroid jsem se snažila využívat principu KISS (Keep It Simple, Stupid), který říká, že nejlepší cesta k úspěchu vede přes jednoduchost. [30]
Při tvorbě aplikace DetectiveDroid bylo potřeba uvědomit si, co všechno může uživateli nabízet.
Zapni aplikaci – spuštění aplikace uživatelem.
Zobraz funkce telefonu – zobrazí skupiny funkcí (povolení) telefonu, uživatel vybírá skupinu, jejíž funkce chce zobrazit.
Zobraz funkce telefonu – pro vybranou kategorii se zobrazí funkce telefonu, k nimž mohou mít aplikace přístup, uživatel vybírá tu funkci, ke které chce zobrazit v telefonu nainstalované aplikace, jež ji využí- vají.
Zobraz aplikace – zobrazení aplikací, které využívají uživatelem zvolenou funkci.
Seřaď aplikace – seřadí aplikace podle abecedy nebo podle data aktualizace.
Základem bylo roztřídit funkce telefonu do nadřazených kategorií, aby byla aplikace přehlednější. Tím byl určen počet aktivit v aplikaci. Díky Záměrům a Dodavatelům úrovně mohly být funkce telefonu v aplikaci DetectiveDroid na totožné úrovni ve stejné aktivitě.