Ako stvoriť Android / 2. časť: Vytvárame prvú aplikáciu

android-bot.jpg V pred­chád­za­jú­cej príp­rav­nej čas­ti sme preb­ra­li, aké kom­po­nen­ty tre­ba nain­šta­lo­vať pri vý­vo­ji ap­li­ká­cií pre mo­bil­né te­le­fó­ny a tab­le­ty s ope­rač­ným sys­té­mom An­droid. Bu­de­te ne­vyh­nut­ne po­tre­bo­vať:
- An­droid SDK Tools
(http://de­ve­lo­per.an­droid.com/sdk/ in­dex.html)
- Vý­vo­jo­vé pros­tre­die Ec­lip­se
(http://www.ec­lip­se.org/downloads)
- An­droid De­ve­lop­ment Tools
(in­šta­lu­je sa ako dopl­nok do Ec­lip­se z https://dl-ssl.goog­le.com/an­droid/ec­lip­se )

Vy­tvo­re­nie no­vé­ho pro­jek­tu An­droid
Mno­hí sa ču­du­jú, pre­čo v kla­sic­kých (a te­da dob­rých) učeb­ni­ciach prog­ra­mo­va­nia sa vždy za­čí­na ap­li­ká­ciou ty­pu „Hello World“, ak chce­te po na­šom, „Zdra­ví­me svet“. Dô­vod je jed­no­duc­hý. Ak ta­ká­to ap­li­ká­cia fun­gu­je, do­ká­že­te vy­pí­sať aký­koľ­vek text, nap­rík­lad aj ob­sah pre­men­ných, čo vý­znam­ne uľah­ču­je la­de­nie a zá­ro­veň má­te is­to­tu, že všet­ko je správ­ne nain­šta­lo­va­né a na­kon­fi­gu­ro­va­né. A ak bu­de va­ša sna­ha zvŕše­ná pre­no­som ap­li­ká­cie do mo­bil­né­ho za­ria­de­nia a jej spus­te­ním v reál­nom pros­tre­dí, us­pe­li ste na vý­bor­nú a mô­že­te sa sme­lo pus­tiť do zlo­ži­tej­ších pro­jek­tov. Vo vý­vo­jo­vom pros­tre­dí po­mo­cou me­nu Fi­le > New > Pro­ject vy­tvor­te no­vý pro­jekt An­droid. Ec­lip­se im­pli­cit­ne uk­la­dá pro­jek­ty do ad­re­sá­ra C:\Users\\wor­kspa­ce. Pro­jekt mô­že­te naz­vať nap­rík­lad Zoz­na­mo­va­ciaAp­li­ka­cia. Vy­ber­te ver­ziu An­droi­du a vy­pl­ňte po­vin­né po­lož­ky Pro­ject na­me, Ap­pli­ca­tion na­me, Pac­ka­ge na­me (v tva­re com.examp­le.zo - zna mo­va­ciaap­li­ka­cia) a Crea­te Ac­ti­vi­ty.

Tre­ba vy­brať ta­kú ver­ziu An­droi­du, aká sa pred­pok­la­dá na cie­ľo­vom za­ria­de­ní, prí­pad­ne niž­šiu.Ke­by ste po­stu­po­va­li opač­ne, na za­ria­de­niach so star­šou ver­ziou ope­rač­né­ho sys­té­mu by ap­li­ká­cia, prí­pad­ne časť jej fun­kcio­na­li­ty ne­mu­se­la pra­co­vať ko­rek­tne.

Aby sme bo­li úpl­ne pres­ní, ap­li­ká­ciu ty­pu „Hello Word“ vlas­tne ne­mu­sí­te tvo­riť, im­pli­cit­ne sa vy­tvo­ri­la ako zá­klad­ná šab­ló­na pro­jek­tu. Tak­že nec­haj­me pí­sa­nie kó­du za­tiaľ bo­kom a po­ďme sa as­poň let­mo oboz­ná­miť s vý­vo­jo­vým pros­tre­dím a „ana­tó­miou“ pro­jek­tu, te­da z akých kom­po­nen­tov a sú­bo­rov pro­jekt ap­li­ká­cie po­zos­tá­va. Vľa­vo v ok­ne Pac­ka­ge Explo­rer ot­vor­te sú­bor Zoz­na­mo­va­ciaAp­li­ka­cia.ja­va. Náj­de­te ho v zlož­ke Zoz­na­mo­va­ciaAp­li­ka­cia> src > com.examp­le.zo - zna mo­va­ciaap­li­ka­cia

im­port an­droid.app.Ac­ti­vi­ty;
im­port an­droid.os.Bund­le;

pub­lic class Zoz­na­mo­va­ciaAp­li­ka­cia extends Ac­ti­vi­ty {
    /** Called when the ac­ti­vi­ty is first crea­ted. */
    @Overri­de
    pub­lic 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.main);
    }
}

Fun­go­va­nie ap­li­ká­cie je za­lo­že­né na trie­de Ac­ti­vi­ty, kto­rá, ako avi­zu­je ná­zov, slú­ži na vy­ko­na­nie ak­cie. Ap­li­ká­cia mô­že za­puz­dro­vať viac sa­mos­tat­ných ak­ti­vít, no tie sú vzhľa­dom na mož­nos­ti plat­for­my ra­de­né sé­rio­vo, či­že po­uží­va­teľ s ni­mi pra­cu­je po­stup­ne. 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 po­uží­va­teľ­ské­ho roz­hra­nia. Šab­ló­na kó­du na vý­pis ozna­mu Hello Word je sú­bo­re /res/layout/main.xml:

<?xml ver­sion="1.0" en­co­ding="utf-8"?>
<Li­nearLayout xmlns:an­droid="http://sche­mas.an­droid.com/apk/res/an­droid"
    an­droid:orien­ta­tion="ver­ti­cal"
    an­droid:layout_width="fill_pa­rent"
    an­droid:layout_height="fill_pa­rent"
    >
<TextView  
    an­droid:layout_width="fill_pa­rent" 
    an­droid:layout_height="wrap_con­tent" 
    an­droid:text="@string/hello"
    />
</Li­nearLayout>

Pres­nej­šie v tom­to sú­bo­re je len za­kom­po­no­va­nie texto­vé­ho re­ťaz­ca do ob­ra­zov­ko­vé­ho kon­textu. De­fi­ní­cia re­ťaz­ca, kto­rý sa bu­de vy­pi­so­vať, je v sú­bo­re /va­lues/string.xml:

<?xml ver­sion="1.0" en­co­ding="utf-8"?>
<re­sour­ces>
    <string na­me="hello">Hello World, Zoz­na­mo­va­ciaAp­li­ka­cia!Zoz­na­mo­va­cia Ap­li­ka­cia

Klik­nu­tím na ze­le­nú šíp­ku mô­že­te ap­li­ká­ciu spus­tiť v emu­lá­to­re mo­bil­né­ho za­ria­de­nia. 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í. Va­ša? Za­tiaľ ste v šab­ló­ne zme­ni­li len je­den texto­vý re­ťa­zec z an­glic­ké­ho na slo­ven­ský. Pre­to pre po­cit dob­re vy­ko­na­nej prá­ce po­uži­je­me na vý­pis textu iný spô­sob.

Prog­ra­mo­va­nie po­uží­va­teľ­ské­ho roz­hra­nia
V pred­chád­za­jú­cej sta­ti bol text vy­pí­sa­ný po­mo­cou vlo­že­nia texto­vé­ho re­ťaz­ca do ob­ra­zov­ko­vé­ho kon­textu v kó­de XML. Rov­na­ký efekt do­siah­ne­te aj po­mo­cou kó­du v prog­ra­mo­va­com ja­zy­ku Ja­va v te­le me­tó­dy On­Crea­te (). Na vý­pis textu tre­ba vy­tvo­riť wid­get TextView a po­mo­cou me­tó­dy set­Text("---texto­vý re­ťa­zec---") za­dať text, kto­rý chce­te zob­ra­ziť. Wid­get mu­sí­te naj­skôr im­por­to­vať.

im­port an­droid.wid­get.TextView;

Kom­plet­ný kód bu­de ta­ký­to:

pac­ka­ge com.examp­le.zoz­na­mo­va­ciaap­li­ka­cia;

im­port an­droid.app.Ac­ti­vi­ty;
im­port an­droid.os.Bund­le;
im­port an­droid.wid­get.TextView;

pub­lic class Zoz­na­mo­va­ciaAp­li­ka­cia extends Ac­ti­vi­ty 
{
    @Overri­de
    pub­lic 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);
        TextView tv = new TextView(this);       
        tv.set­Text("Vi­taj­te v ap­li­ká­cii pre os An­droid");       
        set­Con­ten­tView(tv);
    }
}

V čom sme to vlas­tne prog­ra­mo­va­li?
Kód v pred­chád­za­jú­cej sta­ti sa bu­de zdať fa­mi­liár­ne zná­my znal­com prog­ra­mo­va­cích ja­zy­kov Ja­va aj C#. Už to, že ako vý­vo­jo­vé pros­tre­die sa vy­uží­va Ec­lip­se, jed­noz­nač­ne sved­čí o tom, že prog­ra­mu­je­te v Ja­ve, pres­nej­šie v Ja­ve SE s vy­uži­tím fun­kcií An­droid API. Ok­rem to­ho sa čas­to po­uží­va­jú ďal­šie API na so­fis­ti­ko­va­né sní­ma­nie gest na do­ty­ko­vom dis­ple­ji, po­kro­či­lú her­nú gra­fi­ku, GPS a po­dob­ne. V prík­la­de bol po­uži­tý ba­lí­ček An­droid wid­get. Kom­plet­ný zoz­nam ba­líč­kov náj­de­te na http://de­ve­lo­per.an­droid.com/re­fe­ren­ce/ pac­ka­ges.html.

obr1.JPG

Vy­tvo­re­nie no­vé­ho pro­jek­tu An­droid

obr2.JPG

Za­da­nie pa­ra­met­rov pro­jek­tu

obr3.JPG

Po­uží­va­teľ­ské roz­hra­nie vý­vo­jo­vé­ho pros­tre­dia

obr4.JPG

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

obr5.JPG

Sché­ma ar­chi­tek­tú­ry ope­rač­né­ho sys­té­mu An­droid

Ne­za­bú­daj­te, že v prí­pa­de mo­bil­ných plat­fo­riem obzvlášť pla­tí ús­lo­vie, že všet­ké­ho ve­ľa ško­dí, v tom­to prí­pa­de po­kro­či­lá gra­fi­ka a iné fun­kcie (GPS, Blue­tooth...) vý­raz­ne zni­žu­jú vý­drž ba­té­rie. Po­čas kom­pi­lá­cie je ap­li­ká­cia pre­lo­že­ná a zos­ta­ve­ná s kniž­ni­ca­mi jar An­droid fra­mewor­ku a vý­sled­ný sú­bor zba­le­ný v bi­nár­nom sú­bo­re .dex je za­ve­de­ný do Dal­vik Vir­tual Mac­hi­ne.

Struč­ný úvod do ar­chi­tek­tú­ry ope­rač­né­ho sys­té­mu An­droid
Pri od­po­ve­di na otáz­ku, ako to fun­gu­je, zá­ko­ni­te skôr či nes­kôr bu­de ne­vyh­nut­né mať as­poň zá­klad­nú pred­sta­vu o ar­chi­tek­tú­re ope­rač­né­ho sys­té­mu. Ap­li­ká­cia An­droid je sa­mos­tat­ný pro­ces vy­uží­va­jú­ci vlas­tnú in­štan­ciu vir­tuál­ne­ho stro­ja Dal­vik. Ten za­bez­pe­ču­je beh spus­ti­teľ­ných sú­bo­rov s prí­po­nou (.Dex). Dal­vik je op­ti­ma­li­zo­va­ný pre mo­bil­né za­ria­de­nia, to zna­me­ná ob­med­ze­né mož­nos­ti na­pá­ja­nia, men­šiu pa­mäť a po­dob­ne. Sú­čas­ne mô­že bež­ať viac in­štan­cií vir­tuál­ne­ho stro­ja.

Zá­klad­ný pi­lier ar­chi­tek­tú­ry An­droi­du je Li­nux Ker­nel. To­to jad­ro sa sta­rá o pria­mu inter­ak­ciu s har­dvé­rom mo­bil­né­ho za­ria­de­nia, čím za­bez­pe­ču­je úpl­nú abstrak­ciu od har­dvé­ru pre vy­ššie vrstvy. Za­bez­pe­ču­je sprá­vu pa­mä­te, sprá­vu pro­ce­sov, sie­ťo­vú vrstvu, sprá­vu na­pá­ja­nia, gra­fi­ku a ov­lá­da­če pre mo­du­ly GSM, Blue­tooth, ED­GE, 3G, Wi-Fi, fo­toa­pa­rát, GPS, kom­pas a ak­ce­le­ro­me­ter.

Nad jad­rom je súp­ra­va kniž­níc, kto­ré po­sky­tu­jú prís­tup ap­li­ká­cií k rôz­nym kom­po­nen­tom sys­té­mu An­droid. Na tej­to úrov­ni sú im­ple­men­to­va­né kniž­ni­ce mé­dií, gra­fic­ké 2D a 3D kniž­ni­ce, pri­čom 3D kniž­ni­ce vy­uží­va­jú po­dpo­ru OpenGL ES 1.0 s vo­li­teľ­nou mož­nos­ťou vy­uži­tia gra­fic­kých ak­ce­le­rá­to­rov. Ap­li­ká­cie mô­žu pre svo­ju inter­nú po­tre­bu vy­uží­vať in­teg­ro­va­ný preh­lia­dač webo­vé­ho ob­sa­hu na bá­ze open sour­ce Web­Kit en­gi­ne. Da­ta­bá­zo­vý en­gi­ne SQLi­te ria­di štruk­tú­ro­va­né úlo­žis­ko úda­jov.

An­droid Run­ti­me ob­sa­hu­je súp­ra­vu zá­klad­ných kniž­níc. Ap­li­kač­ný fra­mework ob­sa­hu­je ob­jek­ty na tvor­bu po­uží­va­teľ­ské­ho roz­hra­nia a ap­li­kač­nej lo­gi­ky. Ap­li­ká­cie sú na naj­vyš­šej úrov­ni ar­chi­tek­tú­ry.

Fi­ná­le – spus­te­nie ap­li­ká­cie na reál­nom za­ria­de­ní
Aby bo­lo mož­né spus­tiť ap­li­ká­ciu na reál­nom za­ria­de­ní pri­po­je­nom cez USB, sú po­treb­né ov­lá­da­če USB pre ADB (An­droid De­bug Brid­ge). Ako bo­lo opí­sa­né v pre­doš­lej čas­ti, vo vý­vo­jo­vom pros­tre­dí v zá­lož­ke Avai­lab­le pac­ka­ges v sku­pi­ne Third par­ty Add-ons doin­šta­luj­te prís­luš­ný ov­lá­dač, buď uni­ver­zál­ny od spo­loč­nos­ti Goog­le, ale­bo prop­rie­tár­ny pre da­né za­ria­de­nie. Na­ko­niec tre­ba up­ra­viť v pro­jek­te sú­bor An­droid Ma­ni­fest.xml – do sek­cie pri­daj­te an­droid:de­bug­gab­le="true".

<?xml ver­sion="1.0" en­co­ding="utf-8"?>
<ma­ni­fest xmlns:an­droid="http://sche­mas.an­droid.com/apk/res/an­droid"
      pac­ka­ge="com.examp­le.zoz­na­mo­va­ciaap­li­ka­cia"
      an­droid:ver­sion­Co­de="1"
      an­droid:ver­sion­Na­me="1.0">
    <ap­pli­ca­tion an­droid:icon="@drawab­le/icon" an­droid:la­bel="@string/app_na­me" an­droid:de­bug­gab­le="true" >
        <ac­ti­vi­ty an­droid:na­me=".Zoz­na­mo­va­ciaAp­li­ka­cia"
                  an­droid:la­bel="@string/app_na­me">
            <in­tent-fil­ter>
                <ac­tion an­droid:na­me="an­droid.in­tent.ac­tion.MAIN" />
                <ca­te­go­ry an­droid:na­me="an­droid.in­tent.ca­te­go­ry.LAUN­CHER" />
            </in­tent-fil­ter>
        </ac­ti­vi­ty>
        

    </ap­pli­ca­tion>
obr6.JPG

Nas­ta­ve­nie la­de­nia cez USB

obr7.JPG

Spus­te­nie ap­li­ká­cie na reál­nom za­ria­de­ní

obr8.JPG

Ap­li­ká­cia bu­de umies­tne­ná v mo­bil­nom za­ria­de­ní a dos­tup­ná cez je­ho me­nu

V nas­le­du­jú­cej čas­ti sa za­me­ria­me na pr­vky po­uží­va­teľ­ské­ho roz­hra­nia.

Ďal­šie čas­ti >>

Zdroj: INFOWARE 3/2011



Ohodnoťte článok:
 
 

Váš názor:

 
 
  • Avatar ONETWO: Mam problem ... ked som si vytvoril virtualne zariadnie cez Android SDKcko a skusim ho spustit tak mi napise len napis ANDROID a blikajuci kurzor ... vsetko som robil podla navodu ... kde moze byt chyba ?? dakujem za odpoved 18.04.2011 10:18  
    • Avatar Ghost7: Treba cakat aj niekolko minut, mne to robilo to iste. Treba si vsimnut na spodku eclipse ukazuje co prave robi, mne tam dlho stalo installing app... A po chvili to uz islo... Najlepsie by bolo spustit si Android SDK Manager -> Virtual Devices, vybrat pozadovany device a vpravo kliknut na start a potom eclipse nebude vytvarat novy device ale pouzije spusteny... Dufam, ze to pomoze... 19.05.2011 20:09  
    •  
       
  • Avatar daydalos: neviem ci som slepy ale nikde nevidim odkaz na 1. cast tohto navodu. Nebolo by zle dat vzdy linky aj na predosle casti..urcite by to uvitalo aj viac citatelov 14.04.2011 21:16  |  Reagovať  
  • Avatar ruups: trocha mi to pride matuce kedze na jednej strane sa predpoklada ista znalost javy a na druhej ide autor ozrejmovat v com presne programuje... 14.04.2011 16:20  |  Reagovať  
  • Avatar palino911: wow konecne stare dobre "navody" . Konecne nieco poucne a pouzitelne. Dakujem. 14.04.2011 13:42  |  Reagovať  
 

Najviac vás zaujalo

24 hodín

týždeň

mesiac

 
 

Najnovšie články

Se­riál: Ako stvo­riť An­droid / 5. časť: Gra­fi­ka
(Publikované pred 8 mesiacmi) Základom dizajnu každej aplikácie je pôsobivá grafika. V tejto časti seriálu sa budeme venovať statickej grafike, teda grafickým obrazcom definovaných pri návrhu aplikácie a uloženým v kóde XML aj dynamickej grafike vykresľovanej pomocou kódu počas behu aplikácie. čítať »
 
Ako stvo­riť An­droid / 3. časť: Po­uží­va­teľ­ské roz­hra­nie
(Publikované pred 9 mesiacmi) Základom tvorby interaktívneho používateľského rozhrania sú pohľady, skupiny pohľadov a aktivity. čítať »
 
Ako stvo­riť An­droid / 4. časť: Fun­kčné po­uží­va­teľ­ské roz­hra­nie
(Publikované pred 11 mesiacmi) Námetom predchádzajúcej časti boli princípy tvorby používateľského rozhrania aplikácií na mobilnej platforme Android, presnejšie povedané, išlo o technologické princípy. čítať »
 
Ako stvo­riť An­droid / 2. časť: Vy­tvá­ra­me pr­vú ap­li­ká­ciu
(Publikované pred rokom) V predchádzajúcej prípravnej časti sme prebrali, aké komponenty treba nainštalovať pri vývoji aplikácií pre mobilné telefóny a tablety s operačným systémom Android. čítať »
 
Ako stvo­riť An­droid / 1. časť: Za­čí­na­me
(Publikované pred rokom) K téme vývoja aplikácií pre mobilné zariadenia sa formou seriálu vraciame znovu po šiestich rokoch. Odvtedy sa veľmi veľa vecí zmenilo. čítať »