Moja prvá androidová aplikácia

Vývoj aplikácií pre Android, 2. časť

V úvod­nej čas­ti se­riá­lu sme sa ve­no­va­li in­šta­lá­cii a kon­fi­gu­rá­cii vý­vo­jo­vé­ho pros­tre­dia a emu­lá­to­rov. Pok­ra­ču­je­me vy­tvo­re­ním jed­no­du­chej ap­li­ká­cie, na kto­rej bu­de­me de­monštro­vať zá­klad­né prin­cí­py vý­vo­ja. Zá­ro­veň po pr­vom spus­te­ní pro­jek­tu bu­de­te mať is­to­tu, že vý­vo­jo­vé pros­tre­die, SDK aj emu­lá­to­ry má­te správ­ne na­kon­fi­gu­ro­va­né. Ná­me­tom ap­li­ká­cie bu­de vý­po­čet in­dexu te­les­nej hmot­nos­ti BMI na zá­kla­de za­da­nej vý­šky a hmot­nos­ti oso­by pod­ľa vzor­ca:

BMI = hmot­nosť v kg / (vý­ška v m)2

Vy­tvo­re­nie pro­jek­tu

Pro­jekt vo vý­vo­jo­vom pros­tre­dí Ec­lip­se s nain­šta­lo­va­ným a správ­ne na­kon­fi­gu­ro­va­ným An­droid SDK vy­tvo­rí­te po­mo­cou me­nu Fi­le -> New -> An­droid Ap­pli­ca­tion Pro­ject. V pr­vom di­aló­gu na vy­tvo­re­nie pro­jek­tu za­dá­va­te ná­zov ap­li­ká­cie, kto­rý sa bu­de zob­ra­zo­vať pri spúš­ťa­ní ap­li­ká­cie, ná­zov pro­jek­tu a ná­zov ba­líč­ka. Ná­zov ba­líč­ka je zá­ro­veň men­ný pries­tor ba­líč­ka pre va­šu ap­li­ká­ciu. Ak plá­nu­je­te ap­li­ká­ciu pub­li­ko­vať na Goog­le Play, ne­mô­že­te pou­žiť im­pli­cit­nú hod­no­tu "com.examp­le", ur­če­nú na cvič­né prík­la­dy.

prva1.png

Vy­tvo­re­nie no­vé­ho pro­jek­tu za­da­nie náz­vu

Dô­le­ži­tý je vý­ber maximál­nej a mi­ni­mál­nej ver­zie SDK, či­že na akej šká­le ver­zií ope­rač­né­ho sys­té­mu An­droid bu­de mož­né va­šu ap­li­ká­ciu spus­tiť. Im­pli­cit­ne je ako ak­tuál­na ver­zia nas­ta­ve­ná naj­vyš­šia dos­tup­ná ver­zia. Ako naj­niž­šia ver­zia je im­pli­cit­ne nas­ta­ve­ný An­droid 2.2 (Froyo) – ver­zia API 8. Tre­ba si uve­do­miť, že do­ba ži­vot­nos­ti mo­bil­né­ho te­le­fó­nu je dva až tri ro­ky, tak­že prís­tro­jov so star­ší­mi ver­zia­mi ra­píd­ne ubú­da. V sú­čas­nos­ti ver­ziu 2.2 už pre no­vé ap­li­ká­cie ne­má veľ­mi zmy­sel pod­po­ro­vať. No­vé ap­li­ká­cie pre­to ok­rem niek­to­rých vý­ni­miek sme­ruj­te na ver­ziu 4.0 (Ice Cream Sandwich) a vy­ššie. Mô­že­te tak bez ob­me­dzenia pou­ží­vať no­vé pr­vky pou­ží­va­teľ­ské­ho roz­hra­nia. V po­li The­me si mô­že­te vy­brať fa­reb­nú sché­ma ap­li­ká­cie. Im­pli­cit­ne je nas­ta­ve­ná Ho­lo Light with Dark Ac­tion Bar, te­da svet­lé po­za­die pre ap­li­ká­ciu a tma­vé po­za­die pre ap­li­kač­nú liš­tu.

Vy­tvá­ra­nie pro­jek­tu pok­ra­ču­je di­aló­gom, v kto­rom mô­že­te zme­niť iko­ny pre ap­li­ká­ciu. Po­kiaľ vy­tvá­ra­te cvič­nú ap­li­ká­ciu na vý­uč­bu či na ove­re­nie niek­to­ré­ho tech­no­lo­gic­ké­ho prin­cí­pu, mô­že­te po­ne­chať im­pli­cit­ne nas­ta­ve­nú iko­nu an­droi­do­vej fi­gúr­ky. Pri reál­nej ap­li­ká­cii, sa­moz­rej­me, mu­sí­te navr­hnúť vhod­né a at­rak­tív­ne iko­ny. Od at­rak­tív­nos­ti iko­ny to­tiž čas­to zá­vi­sí, či si pou­ží­va­teľ va­šu ap­li­ká­ciu z Goog­le Play stiah­ne, prí­pad­ne kú­pi. Po nain­šta­lo­va­ní ap­li­ká­cie mô­že at­rak­tív­na iko­na aso­cio­vať dob­rú ap­li­ká­ciu a mo­ti­vo­vať pou­ží­va­te­ľa, aby si ju spus­til.

prva5.png

Iko­ny pre no­vo­vyt­vo­re­ný pro­jekt

Vý­ber ty­pu hlav­nej ak­ti­vi­ty

Na roz­diel od ap­li­ká­cií pre des­kto­po­vé ope­rač­né sys­té­my (Win­dows, Li­nux...) v kó­de ap­li­ká­cie pre An­droid nie je žiad­ny exakt­ný vstup­ný bod, kto­rým pri kla­sic­kých ap­li­ká­ciách bý­va sta­tic­ká me­tó­da main(). Ap­li­ká­cie pre An­droid sa skla­da­jú z via­ce­rých nav­zá­jom ne­zá­vis­lých kom­po­nen­tov – ak­ti­vít a slu­žieb. Ope­rač­ný sys­tém sám ur­ču­je, ke­dy bu­dú vy­tvo­re­né in­štan­cie ak­ti­vít, ke­dy bu­dú od­su­nu­té do po­za­dia či zni­če­né.

Ak­ti­vi­ta je vi­zuál­na rep­re­zen­tá­cia – pre­zen­tač­ná vrstva an­droi­do­vej ap­li­ká­cie. Ap­li­ká­cia mô­že mať nie­koľ­ko ak­ti­vít.

Na vy­tvo­re­nie hlav­nej ak­ti­vi­ty ap­li­ká­cie sú k dis­po­zí­cii šty­ri ty­py ak­ti­vít:

·         Emp­ty Ac­ti­vi­ty – prázd­ny for­mu­lár bez na­vi­gač­ných pr­vkov
·         Blank Ac­ti­vi­ty – ako vo­li­teľ­ný pr­vok na­vi­gá­cie sa pou­ží­va na­vi­gač­ná lišta Ac­tion­Bar s ov­lá­da­cí­mi pr­vka­mi
·         Fullscreen Ac­ti­vi­ty – vy­uží­va ce­lú veľ­kosť ob­ra­zov­ky
·         Mas­ter-De­tail Follow – ho­dí sa pre zoz­na­my ob­jek­tov ty­pu mas­ter – de­tail. Zob­ra­zo­va­cia plo­cha je roz­de­le­ná na dva stĺpce. V ľa­vom stĺpci je zoz­nam ob­jek­tov a v pra­vom stĺpci sú zob­ra­ze­né de­tai­ly via­žu­ce sa na vy­bra­ný ob­jekt.

prva3.png

Typ pou­ží­va­teľ­ské­ho pros­tre­dia eš­te ná­zor­nej­šie než ná­zov vy­svet­ľu­je ob­rá­zok v di­aló­go­vom ok­ne

Pre tú­to jed­no­du­chú ap­li­ká­ciu ozna­čte voľ­bu Emp­ty Ac­ti­vi­ty. Po­ne­chaj­te im­pli­cit­ne nas­ta­ve­né náz­vy. Po spus­te­ní ap­li­ká­cie bu­de zob­ra­ze­ná ak­ti­vi­ta s náz­vom Mai­nAc­ti­vi­ty. Po vy­tvo­re­ní pro­jek­tu si všim­ni­te, že vznik­li dva sú­bo­ry

·         Mai­nAc­ti­vi­ty.ja­va – kód trie­dy ak­ti­vi­ty v prog­ra­mo­va­com ja­zy­ku Ja­va
·         ac­ti­vi­ty_main.xml – de­fi­ní­cia pou­ží­va­teľ­ské­ho roz­hra­nia vo for­má­te XML

Klik­nu­tím na ze­le­nú šíp­ku mô­že­te ap­li­ká­ciu po vy­tvo­re­ní spus­tiť v emu­lá­to­re mo­bil­né­ho za­ria­de­nia. Za­tiaľ len vy­pí­še oznam „Hello World“. V di­aló­gu Run As vy­ber­te mož­nosť An­droid Ap­pli­ca­tion.

aplikacia7.png

Spus­te­nie ap­li­ká­cie

Ak ste vy­tvo­ri­li viac emu­lá­to­rov, nap­rík­lad v na­šom prí­pa­de emu­lá­tor za­ria­de­nia ty­pu smar­tfón a emu­lá­tor za­ria­de­nia ty­pu tab­let, po­mo­cou po­lož­ky Run Con­fi­gu­ra­tion zob­ra­zí­te di­alóg na vý­ber emu­lá­to­ra, na kto­rom chce­te ap­li­ká­ciu spus­tiť.

aplikacia8.png

Kon­fi­gu­rá­cia spus­te­nia ap­li­ká­cie

Po ná­be­hu emu­lá­to­ra a je­ho od­om­knu­tí sa va­ša ap­li­ká­cia auto­ma­tic­ky spus­tí.

Po vy­tvo­re­ní pr­vé­ho pro­jek­tu od­po­rú­ča­me hlav­ne za­čia­toč­ní­kom a vý­vo­já­rom mig­ru­jú­cim z iných plat­fo­riem, aby sa oboz­ná­mi­li s umies­tne­ním a vý­zna­mom kľú­čo­vých sú­bo­rov, kto­ré tvo­ria pro­jekt.

Sú­čas­ti pro­jek­tu, s kto­rý­mi prí­de­te naj­viac do kon­tak­tu, sú v zlož­kách

·         src – v zlož­ke sa na­chá­dza­jú sú­bo­ry s kó­dom tried v prog­ra­mo­va­com ja­zy­ku Ja­va
·         res – v zlož­ke sa na­chá­dza­jú sú­bo­ry XML s de­fi­ní­ciou pou­ží­va­teľ­ské­ho roz­hra­nia
·         as­sets – zlož­ka ob­sa­hu­je sú­bo­ry pri­ba­le­né k ap­li­ká­cii, nap­rík­lad texto­vé či da­ta­bá­zo­vé sú­bo­ry
·         an­droid-sup­port-v4 – zlož­ka ob­sa­hu­je kniž­ni­ce umož­ňu­jú­ce vy­uží­vať fun­kcio­na­li­tu, kto­ré pri­nies­li no­vé ver­zie An­droi­du (ty­pic­ky od ver­zie An­droid 4), aj v star­ších ver­ziách

De­fi­nič­ný sú­bor pou­ží­va­teľ­ské­ho roz­hra­nia

Po vy­tvo­re­ní pro­jek­tu sa v hlav­nom ok­ne pou­ží­va­teľ­ské­ho roz­hra­nia vý­vo­jo­vé­ho pros­tre­dia Ec­lip­se zob­ra­zí de­fi­ní­cia návr­hu pou­ží­va­teľ­ské­ho roz­hra­nia v sú­bo­re ac­ti­vi­ty_main.xml. Sú­bor je v zlož­ke /res/layout/.

Do­ku­ment XML má je­den ko­re­ňo­vý ele­ment Re­la­ti­ve­Layout, do kto­ré­ho sa pos­tup­ne vná­ra­jú pr­vky v ori­gi­nál­nej ter­mi­no­ló­gii views, tvo­ria­ce pou­ží­va­teľ­ské roz­hra­nie ap­li­ká­cie.

<Re­la­ti­ve­Layout xmlns:an­droid="http://sche­mas.
an­droid.com/apk/res/an­droid"   
xmlns:tools="http://sche­mas.an­droid.com/tools"   
an­droid:layout_width="match_pa­rent"
an­droid:layout_height="match_pa­rent"   
tools:con­text="${pac­ka­ge­Na­me}.${ac­ti­vi­tyC­lass}" >   
<TextView       
an­droid:layout_width="wrap_con­tent"       
an­droid:layout_height="wrap_con­tent"
an­droid:text="@string/hello_world" />

</Re­la­ti­ve­Layout>

Vý­znam toh­to kó­du naj­lep­šie po­cho­pí­te, ak prep­ne­te vý­vo­jo­vé pros­tre­die na zá­lož­ku Grap­hi­cal Layout do re­ži­mu zob­ra­ze­nia gra­fic­ké­ho návr­hu.

prva7.png

Vý­vo­jo­vé pros­tre­die po vy­tvo­re­ní pro­jek­tu

Pri návr­hu pou­ží­va­teľ­ské­ho roz­hra­nia mô­že­te pris­tu­po­vať buď dek­la­ra­tív­ne po­mo­cou vi­zuál­ne­ho návr­hu, ale­bo im­pe­ra­tív­ne – pí­sa­ním kó­du XML de­fi­ní­cie pou­ží­va­teľ­ské­ho roz­hra­nia. Zá­le­ží len na vás, pre kto­rý spô­sob sa v kto­rej kon­krét­nej si­tuá­cii roz­hod­ne­te.

Ap­li­kač­ný kód

V hor­nej čas­ti hlav­né­ho ok­na – vľa­vo od zá­lož­ky sú­bo­ru frag­ment_main.xml – je zá­lož­ka sú­bo­ru Mai­nAc­ti­vi­ty.ja­va. Ke­by ste ho za­tvo­ri­li a chce­li zno­vu ot­vo­riť, náj­de­te ho cez od­kaz v ľa­vom ok­ne Pac­ka­ge Explo­rer v zlož­ke Pr­vaAp­li­ka­cia> src > com.examp­le.pr­vaap­li­ka­cia. V sú­bo­re náj­de­te kód hlav­nej ak­ti­vi­ty.

pac­ka­ge com.examp­le.pr­vaap­li­ka­cia;

im­port an­droid.app.Ac­ti­vi­ty;
im­port an­droid.os.Bund­le;
im­port an­droid.view.Me­nu;
im­port an­droid.view.Me­nuI­tem;

pub­lic class Mai­nAc­ti­vi­ty extends
Ac­ti­vi­ty
{

    @Overri­de   
pro­tec­ted void on­Crea­te(Bund­le sa­ve­dIn­stan­ceS­ta­te)   
{

        su­per.on­Crea­te(sa­ve­dIn­stan­ceS­ta­te);       
set­Con­ten­tView(R.layout.ac­ti­vi­ty_main);   
}
}

Me­tó­da On­Crea­te () je vo­la­ná ope­rač­ným sys­té­mom pri vstu­pe do ak­cie, tak­že v tej­to me­tó­de sa spra­vid­la vy­ko­ná­va ini­cia­li­zá­cia pou­ží­va­teľ­ské­ho roz­hra­nia.

Me­tó­da set­Con­ten­tView pre­be­rá iden­ti­fi­ká­tor layoutu ale­bo ob­jekt ty­pu View. V na­šom no­vo vy­tvo­re­nom pro­jek­te sa pre­be­rá iden­ti­fi­ká­tor hlav­nej ak­ti­vi­ty R.layout.ac­ti­vi­ty_main.

De­fi­no­va­nie ob­jek­tov v zdro­joch (re­sour­ces)

V ap­li­ká­ciách sa vy­uží­va množ­stvo de­fi­ní­cií ob­jek­tov. Ty­pic­ký prík­lad sú texto­vé re­ťaz­ce, de­fi­ní­cie fa­rieb, tva­rov a po­dob­ne. Na uk­la­da­nie de­fi­ní­cií slú­ži ad­re­sár zdro­jov /res.

Od­po­rú­ča­nie: Dô­raz­ne od­po­rú­ča­me vy­tvá­rať de­fi­ní­cie ob­jek­tov v zdro­joch. Nes­kôr zme­nou hod­no­ty v de­fi­nič­nom sú­bo­re sa auto­ma­tic­ky zme­ní da­ný ob­jekt vo všet­kých layoutoch, kto­ré ho vy­uží­va­jú.

 V pr­vom po­kus­nom zá­sa­hu do ap­li­ká­cie Hello World mô­že­te zme­niť text ozna­mu v ele­men­te TextView. Tu je len od­kaz na de­fi­ní­ciu texto­vé­ho re­ťaz­ca. De­fi­ní­cie re­ťaz­cov sú ulo­že­né v sú­bo­re res/va­lues/string.xml.

<re­sour­ces>
    <string na­me="app_na­me">Mo­jaPr­vaAp­li­ka­cia</string>
    <string na­me="hello_world">Hello world!</string>
</re­sour­ces>

V zlož­ke res sú v sa­mos­tat­ných zlož­kách de­fi­ní­cie rôz­nych ob­jek­tov v zá­vis­los­ti od cha­rak­te­ru ap­li­ká­cie. Naj­čas­tej­šie v tej­to zlož­ke náj­de­te vno­re­né po­dzlož­ky:

·         Layout – de­fi­ní­cia roz­mies­tne­nia pr­vkov pou­ží­va­teľ­ské­ho roz­hra­nia
·         Me­nu – de­fi­ní­cia štruk­tú­ry me­nu
·         Strings – de­fi­ní­cie texto­vých re­ťaz­cov
·         Co­lors – de­fi­ní­cie fa­rieb pou­ži­tých v ap­li­ká­cii
·         Di­mens – roz­me­ry v jed­not­kách dip (den­si­ty in­de­pen­dent pixel)
·         Drawab­le – de­fi­ní­cia ob­ráz­kov (.png, .jpg, .gif) a tva­rov na vy­kres­ľo­va­nie

Ľubos­lav Lac­ko, pok­ra­ču­je­me o me­siac



Ohodnoťte článok:
   
 

24 hodín

týždeň

mesiac

Najnovšie články

No­te­boo­ko­vé no­vin­ky: Pra­cov­né nás­tro­je
Letná dovolenka je pre mnohých čas, keď si síce vychutnajú voľno, no musia sčasti aj pracovať. V letných notebookových novinkách máme tri kúsky, ktoré budú dobrými pomocníkmi v kancelárii alebo na cestách. čítať »
 
No­vin­ky me­dzi rep­ro­duk­tor­mi
Priaznivci prenosných reproduktorov si opäť prídu na svoje. Máme tu lacnejšie aj drahšie modely a takisto jednu perličku v podobe klasickej zostavy 2.1. čítať »
 
Psy­chowal­kman MindPla­ce Ka­si­na
Psychowalkan je zariadenie, ktoré vám umožní sústrediť sa na konkrétnu činnosť alebo na druhej strane vám pomôže pri relaxe. Je to teda audiovizuálne stimulačné zariadenie, ktoré pomáha dosiahnuť vami stanovený cieľ. čítať »
 
Head-up dis­plej do kaž­dé­ho au­ta
Head-up displej je už vo výbave niektorých moderných automobilov, patrí však skôr k luxusnému vybaveniu. Hlavne z vozidiel značky BMW mMáme skúsenosti, že projekcia údajov na čelné sklo je veľmi názorná a pritom vodič nemusí spúšťať oči z cesty. čítať »
 
Sof­tvé­ro­vý vý­ber PC RE­VUE
Letný výber prináša dve aplikácie. Obe sú špičkou vo svojej oblasti. Máme tu top nástroj na webové stránky, ktorý mnohí poznáte a často žiadate jeho zaradenie do nášho výberu. A rovnako sme si istí, že využijete aj komplexný nástroj na prácu s fotografiami. čítať »
 
Zá­kon o krát­ko­do­bom náj­me by­tov
Od 1. mája 2014 nadobudol účinnosť zákon č. 98/2014 Z. z. o krátkodobom nájme bytu. Tento zákon významným spôsobom zlepšuje postavenie prenajímateľa v porovnaní so všeobecnou úpravou obsiahnutou v ustanoveniach paragrafov 685 až 716 Občianskeho zákonníka. čítať »
 
Te­le­ví­zia do vrec­ka
Existuje viacero spôsobov, ako premeniť inteligentný telefón na televíziu do vrecka. čítať »
 
 
 
  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