Xamarin.Android – štruktúra aplikácie

Základné stavebné bloky aplikácie vytvorenej pomocou Xamarin.Android.

1. Activity

Na rozdiel od iných platforiem, aplikácia pre Android nemá jednotné kontaktné miesto – nemá žiadnu „Main“ metódu.

Celá aplikácia je postavená na voľne viazaných obrazovkách nazývaných „Activity„. Podpora multiobrazovkových aplikácií je v Androide samozrejmosťou. Keďže je každá aktivita samostatná, musí existovať spôsob na jej spustenie a vzájomné predávanie dát medzi rôznymi aktivitami. V systéme Android k tomu účelu slúžia tzv. Intents. Intents sú vlastne triedy, ktoré popisujú ako naložiť s danou aktivitou a ako si majú aktivity medzi sebou predávať rôzne dáta (informácie).

Základné stavebné prvky Android aplikácie

Základné stavebné prvky Android aplikácie

Sú to vlastne triedy poskytujúce komunikačné rozhranie.

Ako užívateľské rozhranie (UI) v Android aplikáciách slúžia Activity. Preto je potrebné pri vývoji aplikácie pre rôzne zariadenia zabezpečiť iné activity a prepínanie medzi nimi.

Trieda Activity dedí vlastnosti z triedy Context, vďaka tomu získava okrem iných vlastností aj mechanizmus pre prístup k samotnému systému. Trieda Context môže v systéme Android vykonávať mnoho operácií, ako sú napríklad:

  • spúšťanie a zastavovanie systémových služieb
  • pristupovať k preferenciám
  • vytvárať náhľady tzv. View
  • pristupovať k zdrojom

Trieda Context potrebuje vedieť aké oprávnenia bude mať aplikácia a na základe toho umožní prístup k rôznym službám.

Životný cyklus aktivít

Aktivita obsahuje metódu životného cyklu, ktorá vám pomôže identifikovať a vykonávať operácie v závislosti na stavoch životného cyklu.

Aktivity je možné pozastaviť prípadne úplne zrušiť na úrovni systému. Životný cyklus poskytuje aktivitám spôsob ako zvládnuť rôzne obdobia svojej životnosti, kedy budú volané, kedy dostanú možnosť ukladať dáta a pod., takže obrazovky môžu aj naďalej fungovať.

Životný cyklus aktivity

Životný cyklus aktivity

2. Intent (Zámer)

Intent je ako som už naznačil nejaký komunikačný objekt (uzol), ktorý zabezpečuje komunikáciu mezi komponentami aplikácie, uľahčuje komunikáciu medzi aktivitami. Je to v podstate pasívna dátová štruktúra, ktorá v sebe zhromažďuje abstraktný popis toho, čo sa má urobiť.

Napríklad má aplikácia v úmysle vytočenie telefónneho čísla (keď užívateľ klikne napr. na tlačítko). Aplikácia svoj zámer (vytočenie telefónneho čísla) predá pomocou Intent, ktorý vyvolá akciu telefónneho vytáčania. Skutočné vytočenia telefónneho čísla potom uskutoční aktivita v aplikácii Phone Dialer.

3. AndroidManifest.xml

Každá aplikácia pre Android musí obsahovať súbor AndroidManifest.xml. Súbor obsahuje všetky dôležité informácie o aplikácii, napríklad:

  • Vlastný názov aplikácie, ikonu aplikácie, verziu, verziu kódu, atď.
  • Registráciu aktivít, Intents a služieb
  • Výpis všetkých požadovaných (povolených) oprávnení vašej aplikácie
  • Kompatibilitu naprieč OS – minimálnu a maximálnu verziu API, ktorú podporuje

4. Services (Služby)

Služby sú súčasťou každej aplikácie, ktoré bežia na pozadí a vykonávajú dlhodobo bežiace procesy bez priameho prístupu k užívateľskému rozhraniu. Typicky dlhodobým procesom môže byť pravidelné sťahovanie dát z internetu, záznamy väčšieho množstva údajov do databázy, načítanie kontaktov telefónneho zoznamu, atď. Takéto úlohy môžu byť realizované pomocou služieb, aby zostalo zachované pohodlie užívateľa pri používaní aplikácie. Užívateľ sa može plne venovať užívateľskému rozhraniu zatiaľ čo služby bežia na pozadí aplikácie.

5. Content Providers (Poskytovatelia obsahu)

Poskytovatelia obsahu riadia prístup do centrálneho úložiska dát, ako sú napr. kontakty. Užívateľské rozhranie posiela žiadosť na správu svojich dát priamo danému poskytovateľovi.

6. Broadcast

Sú komponenty, ktoré vykonávajú nejaký druh spracovania prenosu v systéme. Prenosy sú spravidla inicializované pri zmene nejakej udalosti, napr. nízky stav batérie, fotografovaním alebo zapnutím Bluetooth. Poskytovateľ obsahu môže spustiť prenos napríklad keď je aktualizovaný kontakt. Prenosy nemajú užívateľské rozhranie, môžu však ovplyvňovať zmeny statusu.