Programujeme pre Android / 5. časť

Na­priek to­mu, že hlav­nou nápl­ňou toh­to se­riá­lu je prog­ra­mo­va­nie, kto­ré­ho vý­sled­kom ma­jú byť spus­ti­teľ­né ap­li­ká­cie, stá­le sa mu ne­mô­že­me napl­no ve­no­vať. Špe­ci­fic­ká štruk­tú­ra ap­li­ká­cií ur­če­ných pre OS An­droid nám ne­do­vo­ľu­je za­čať prog­ra­mo­vať bez vy­svet­le­nia vý­zna­mu nas­le­du­jú­cich kom­po­nen­tov:

Ak­ti­vi­ty (ac­ti­vi­ties)

Ak­ti­vi­ty for­mu­jú pou­ží­va­teľ­ské roz­hra­nia (UI - user inter­fa­ces) ap­li­ká­cií tým, že vy­tvá­ra­jú pries­tor na vkla­da­nie gra­fic­kých pr­vkov. Iný­mi slo­va­mi, ide o pre­zen­tač­nú vrstvu ob­sa­hu­jú­cu ov­lá­da­cie pr­vky pot­reb­né na inter­ak­ciu pou­ží­va­te­ľa s prog­ra­mo­vou lo­gi­kou. Vi­zuál­ny ob­sah ak­ti­vít špe­ci­fi­ku­je­me po­mo­cou poh­ľa­dov (views), z kto­rých sú od­vo­de­né gra­fic­ké pr­vky (wid­gets). Ap­li­ká­cie mô­žu byť tvo­re­né via­ce­rý­mi ak­ti­vi­ta­mi, kto­ré mô­žu byť spus­te­né aj sa­mos­tat­ne. „Ži­vot­ný" cyk­lus (li­fe cyc­le) ak­ti­vít je zväč­ša krát­ky a mô­že byť ke­dy­koľ­vek ukon­če­ný sys­té­mom.

Vo všeo­bec­nos­ti sa ži­vot­ný cyk­lus ap­li­ká­cií ur­če­ných pre An­droid pod­stat­ne od­li­šu­je od ži­vot­né­ho cyk­lu ap­li­ká­cií ur­če­ných pre bež­né PC. Hlav­ný dô­vod toh­to roz­die­lu tkvie v ur­če­ní za­ria­de­ní (smar­tfó­nov), pre kto­ré bol An­droid vy­vi­nu­tý. Ap­li­ká­cie sa v pr­vom ra­de mu­sia po­dria­diť prio­rit­nej fun­kcii smar­tfó­nov, kto­rou je ko­mu­ni­ká­cia (te­le­fo­no­va­nie, SMS...). Ďal­ší roz­diel me­dzi smar­tfón­mi, resp. tab­let­mi a bež­ný­mi PC je v ich har­dvé­ri. Aj keď ne­mož­no jed­noz­nač­ne po­ve­dať, že vý­kon uve­de­ných za­ria­de­ní je niž­ší ako vý­kon bež­ných PC, pre mno­hé z nich ten­to fakt stá­le pla­tí. Ap­li­ká­cie ur­če­né pre An­droid te­da mu­sia po­čí­tať s me­nej vý­kon­ný­mi CPU a hlav­ne men­šou veľ­kos­ťou RAM.

OS An­droid si z uve­de­ných dô­vo­dov vy­hra­dzu­je prá­vo zru­šiť spus­te­né ak­ti­vi­ty, a to z naj­rôz­nej­ších dô­vo­dov. To si vy­ža­du­je zme­nu v mys­le­ní prog­ra­má­to­rov. Žiad­na ak­ti­vi­ta ne­má is­té, ako dl­ho bu­de spus­te­ná, čo mu­sí ak­cep­to­vať aj jej prog­ra­mo­vá lo­gi­ka. An­droid de­fi­nu­je nas­le­du­jú­ce šty­ri mož­né sta­vy ži­vot­né­ho cyk­lu ak­ti­vít (tab. 1).

85-1.jpg

Ap­li­ká­cie ur­če­né pre An­droid ne­ma­jú fun­kciu main(), kto­rá by sa kon­ti­nuál­ne vy­ko­ná­va­la až do jej riad­ne­ho ukon­če­nia. Všet­ky ak­ti­vi­ty, kto­rých in­štan­cie vy­tvá­ra OS, ma­jú rov­na­ký ži­vot­ný cyk­lus. Zme­na sta­vu (eta­py) ži­vot­né­ho cyk­lu ak­ti­vít je spre­vá­dza­ná vy­ko­na­ním jed­nej, resp. via­ce­rých z nas­le­du­jú­cich me­tód (tab. 2).

85-2.jpg

Služ­by (servic­es)

Služ­by sú ne­vi­zuál­ne kom­po­nen­ty ur­če­né na vy­ko­ná­va­nie špe­ci­fic­kých čin­nos­tí ne­vy­ža­du­jú­cich pou­ží­va­teľ­skú inter­ak­ciu. Na roz­diel od ak­ti­vít je ich ži­vot­ný cyk­lus dl­hší, resp. služ­by sú navr­hnu­té na nep­retr­ži­tý beh na po­za­dí (background). Služ­by zväč­ša pl­nia čias­tko­vé fun­kcie sú­vi­sia­ce s kon­krét­nym ko­mu­ni­kač­ným, resp. mul­ti­me­diál­nym ob­sa­hom za­ria­de­ní.

Pos­ky­to­va­te­lia ob­sa­hu (con­tent pro­vi­ders)

Pos­ky­to­va­te­lia ob­sa­hu pred­sta­vu­jú abstrak­tnú úro­veň pre prís­tup k úda­jom na­chá­dza­jú­cim sa v úlož­nom pries­to­re za­ria­de­nia. Umož­ňu­jú kon­tro­lo­vať (spra­vo­vať) prís­tup k ulo­že­ným úda­jom, ku kto­rým pos­ky­tu­jú prís­tup pre ap­li­ká­cie, kto­ré o ne po­žia­da­jú ces­tou tzv. rie­ši­te­ľov (con­tent re­sol­vers). Pos­ky­to­va­te­lia ob­sa­hu sa na­vo­nok ja­via ako da­ta­bá­zy. Prís­tup k ulo­že­ným úda­jom je zá­vis­lý od práv, kto­rý­mi dis­po­nu­jú ap­li­ká­cie, a ta­kis­to od prís­tu­po­vých práv nas­ta­ve­ných úda­jom.

Pri­jí­ma­če ozná­me­ní (broad­cast re­cei­vers)

Pri­jí­ma­če ozná­me­ní sú kom­po­nen­ty slú­žia­ce na prí­jem ozná­me­ní ge­ne­ro­va­ných sys­té­mom. Rov­na­ko ako služ­by sú zväč­ša pou­ží­va­teľ­sky ne­vi­di­teľ­né, bež­ia na po­za­dí a rea­gu­jú na broad­cas­to­vé ozná­me­nia, resp. pod­ne­ty. Je bež­né, že pri­jí­ma­če ozná­me­ní sú pou­ži­té v rám­ci ak­ti­vít. Zá­ujem o prí­jem kon­krét­nych ozná­me­ní dek­la­ru­jú po­dob­ne ako ak­ti­vi­ty ces­tou tzv. filtrov zá­me­rov (in­tent fil­ters).

Zá­me­ry (in­tents)

Zá­me­ry sú sprá­vy, kto­ré sú od­ov­zdá­va­né ak­ti­vi­tám, služ­bám ale­bo pri­jí­ma­čom ozná­me­ní v prí­pa­de uda­los­tí (events) vznik­nu­tých pri rôz­nych har­dvé­ro­vých či sof­tvé­ro­vých zme­nách ale­bo v prí­pa­de inej ap­li­kač­ne ge­ne­ro­va­nej po­žia­dav­ky. OS po­mo­cou pre­mys­le­né­ho sys­té­mu (ces­tou dek­la­rá­cie filtrov zá­me­rov) auto­ma­tic­ky spúš­ťa kom­po­nen­ty, kto­ré bu­dú na zá­me­ry rea­go­vať. Dô­le­ži­té je, že zá­me­ry opi­su­jú iba čin­nosť, kto­rá sa má vy­ko­nať, a nie spô­sob, ako sa má vy­ko­nať.

Frag­men­ty (frag­ments)

Frag­men­ty tvo­ria vo­li­teľ­nú vrstvu me­dzi ak­ti­vi­ta­mi a poh­ľad­mi, resp. gra­fic­ký­mi pr­vka­mi UI. Vkla­da­jú sa do ak­ti­vít z dô­vo­du ag­re­gá­cie kon­taj­ne­rov a wid­ge­tov. Dô­vo­dom ich dopl­ne­nia bol naj­mä nap­re­du­jú­ci vý­voj rôz­nych veľ­kos­tí dis­ple­jov. Frag­men­ty sú spra­vo­va­né ak­ti­vi­ta­mi, ma­jú po­dob­ný ži­vot­ný cyk­lus a mô­žu mať dy­na­mic­ký cha­rak­ter. Me­tó­dy frag­men­tov sú­vi­sia­ce s ich ži­vot­ným cyk­lom sú dopl­ne­né (roz­ší­re­né) o me­tó­dy slú­žia­ce na kon­takt s ak­ti­vi­ta­mi.

Zdroj: IW 11-12/2014



Ohodnoťte článok:
 
 
 
 
  Zdieľaj cez Facebook Zdieľaj cez Google+ Zdieľaj cez Twitter Zdieľaj cez LinkedIn Správy z RSS Správy na smartfóne Správy cez newsletter