1. Argumentace
Následující text je jednou z kapitol mojí bakalářské práce, kterou právě píši. Tato
práce má za cíl vytvořit specifickou Android aplikaci. S ohledem na tento fakt je
bezesporu vhodné popsat, jak takový Android program vypadá a jakou má
strukturu. Jelikož je platforma Android stará jen pár let a většina vývojářů s ní nemá
zkušenosti, bude pro ně i pro ostatní členy IT komunity tento text přínosný.
Android a struktura aplikací na této platformě
„Android pohání stovky milionů mobilních zařízení ve více než 190 zemích po celém
světě. Je to nejrozšířenější mobilní platforma — každý den poprvé zapne Android
zařízení další milion uživatelů a začne hledat aplikace, hry a další digitální obsah.
Android nabízí zaprvé prvotřídní platformu pro vytváření softwaru a her pro
Android uživatele na celém světě a zadruhé otevřený trh pro okamžitou distribuci.“1
[1] Jelikož je Android dnes tak masivně rozšířený, je vhodné se blížeji seznámit se
strukturou aplikací vyvíjených na této platformě.
Mezi hlavní komponenty Android programů patří aktivity, dodavatelé obsahu,
služby a záměry [2]. Aktivita je základním stavebním kamenem, který
zprostředkovává komunikaci s uživatelem. Ve většině případů reprezentuje jedno
zobrazované okno s určitým grafickým rozhraním. Otevřené aktivity, chcete-li
otevřená okna, jsou vkládána do zásobníku, díky čemuž je uživatel po zavření
zobrazované aktivity přesměrován do aktivity předchozí, ze které byla zavřená
aktivita spuštěna. Z toho vyplývá, že aktivity mají svůj životní cyklus, během kterého
jsou všechny změny v nich provedené (uživatel vložil data) ukládány a opětovně
načteny při návratu na vrchol zásobníku. Jakmile je aktivita zavřena, tedy odebrána
ze zásobníku, všechna data jsou smazána a její životní cyklus končí. [2][3]
Dodavatel obsahu umožňuje přistupovat ke strukturovanému úložišti dat, ve
kterém mohou být data jak z integrovaných aplikací, tak i z těch stáhnutých. Dobrým
1
přeloženo z: „Android powers hundreds of millions of mobile devices in more than 190 countries around the
world. It's the largest installed base of any mobile platform and growing fast — every day another million users
power up their Android devices for the first time and start looking for apps, games, and other digital content.
Android gives you a world-class platform for creating apps and games for Android users everywhere, as well as
an open marketplace for distributing to them instantly.“
2. příkladem je seznam kontaktů. Pomocí dodavatele obsahu tedy můžeme přistupovat
k datům ostatních programů a poskytovat data našeho vlastního softwaru. Jedním z
důvodů pro implementování této služby je například umožnění kopírování
komplexních dat z naší aplikace do jiné pomocí „copy and paste“. [2][4][5]
Služby na rozdíl od aktivit, které mohou být ukončeny téměř okamžitě po jejich
spuštění, představují obvykle déle běžící procesy. Služba může být spuštěna v rámci
aktivity, avšak její životní cyklus na ni není vázán. To znamená, že po ukončení
aktivity může služba nadále existovat. Často jsou prováděny ve vlastním vlákně, aby
nezatěžovaly běh ostatních procesů. Příkladnou ukázkou je přehrávání hudby, které
je zpravidla spuštěno pomocí rozhraní daného programu, který je následně ukončen.
Tato služba i přesto nadále přehrává všechny dostupné skladby a je schovaná na
pozadí. [2][6]
Záměry jsou systémové zprávy, které primárně slouží ke spouštění aktivit.
Umožňují reagovat na výskyt různých událostí, jako je například přijetí SMS zprávy.
Jinými slovy, popisují operaci, která má být provedena. [2][7]
Dalšími součástmi Android aplikací jsou XML (Extensible Markup Language)
soubory, manifest, preference, soubory s řetězci... Výše bylo řečeno, že aktivita
zastupuje jedno zobrazované okno, které má určitý grafický vzhled. Ten je definován
pomocí XML, které je načteno vždy při startu aktivity. XML soubor má vždy jeden
rodičovský element, který definuje, jak v něm budou jeho potomci rozloženi.
Potomci již mohou být jednotlivé, pro uživatele viditelné, komponenty, jako jsou
tlačítka, rolovací lišty, editovací pole a mnoho dalších, anebo mohou pouze
specifikovat vybrané vlastnosti jejich dalších potomků. Samozřejmě je možné
vytvářet komponenty dynamicky v kódu některé třídy, ovšem toto řešení je složitější
(jak z hlediska programátora, tak i ve velikosti kódu oproti tomu v XML) a je
náchylné k chybám, protože je potřeba ošetřovat parametry, které XML řeší
automaticky. [2]
Manifest je XML soubor, ve kterém je deklarován obsah aplikace. Nalezneme zde
tedy především, jakou verzi OS Android program podporuje, jaká práva program
pro jeho správnou funkčnost potřebuje (například přístup k Internetu), která aktivita
se spustí po zapnutí softwaru, deklaraci všech aktivit a služeb... V případě, že
nebudou v manifestu uvedeny všechny aktivity či služby, aplikace při pokusu
o jejich nastartování zahlásí chybu a spadne. [2]
4. [5] Content Providers Basics. Android Developers [online]. 2012 [cit. 2012-11-30].
Dostupné z: http://developer.android.com/guide/topics/providers/content-provider-
basics.html
[6] Service. Android Developers [online]. 2012 [cit. 2012-11-30]. Dostupné z:
http://developer.android.com/reference/android/app/Service.html
[7] Intent. Android Developers [online]. 2012 [cit. 2012-11-30]. Dostupné z:
http://developer.android.com/reference/android/content/Intent.html
Hodnocení zdrojů
[1]:
text obsahuje odbornou terminologii
text je strukturovaný
informace jsou přesné a objektivní
text obsahuje aktuální informace
text je součástí webu Android Developers, což je oficiální web pro Android
vývojáře od Googlu
[2]:
knížka je odborně velmi kvalitní
je znám autor textu
autor je v problematice erudovaný
text obsahuje odbornou terminologii
text je strukturovaný
informace jsou přesné a objektivní
[3][4][5][6][7]:
text obsahuje odbornou terminologii
text je strukturovaný
informace jsou přesné a objektivní
text obsahuje aktuální informace
text je součástí webu Android Developers, což je oficiální web pro Android
vývojáře od Googlu
text je pravidelně aktualizovaný
pro neznalého čtenáře nevstřebatelný (značí vysokou odbornost)