spájame
slovenskú
IT komunitu
pridaj sa
Registrácia · Login

Lukáš Kasič 9.8.2012
Hodnoť článok:
19 0

Programujeme pre Android (1. diel) – Úvod k platforme

Popis platformy Android

Za posledné roky sa medzi ľudí dosť rozšírili smartphony, čiže “chytré mobily”. Ich obľúbenosť stále rastie a ich funkcie sú využívané stále viac a viac. Mobilná platforma Android dovoľuje prakticky každému tvoriť programy a rozširovať tak funkcie smartphonov. Aj keď tomuto trhu stále dominuje Apple so zariadeniami iPod, iPhone a iPad, Android je plne otvorený pre každého. V tomto seriáli si ukážeme, ako tvoriť jednoduché aplikácie pre zariadenia poháňajúcich práve Android.

Vývoj Androidu

Starostlivou matkou je pre Android konzorcium Open Handset Alliance. Je to zoskupenie rôznych

  • výrobcov mobilných telefónov (Samsung, LG, Sony),
  • hardvéru (Intel, Nvidia, ARM)
  • softvéru (Google, eBay)
  • telekomunikačných poskytovateľov (T-Mobile, Telefonica)
  • a kto vie ešte čoho/koho

Kompletný zoznam členov si môžete pozrieť na wikipédii, Open Handset Alliance.

Open Handset Alliance sa stará o vývoj Androidu, zastrešuje jeho rozšírenie medzi užívateľov a dáva tak aj technickú podporu.

Asi najznámejší z týchto členov je Google, pretože je to on, kto odkúpil pôvodnú spoločnost Android Inc. a dal podnet na vytvorenie OHA. Tým, že sa vytvorilo zoskupenie mnohých výrobcov mobilných telefónov dostal Android veľkú silu v boji s najväčšou konkurenciou, spoločnosťou Apple. Naokolo nás panujú patentové spory, ktorým podnet dáva stále Apple.

Trochu viac o Androide, sporná výhoda s nevýhodou

Android je rozsiahla platforma postavená na základe operačného systému Linux. Nakoľko Linux je open source projekt, jeho licencia umožňuje hocikomu vziať zdrojový kód a upraviť ho podľa svojich predstáv. Android sa drží tejto myšlienky a svoj zdrojový kód dáva celému svetu. To predstavuje obrovské výhody pre výrobcov mobilných zariadení, pretože spoločnosti ako Samsung, Sony Ericsson a HTC môžu vziať kód Androidu, upraviť ho pre svoje zariadenia a vôbec, môžu podporovať platformu Androidu. Dávajú príležitosť mnohým programátorom tvoriť aplikácie pre mnohé typy mobilov a zároveň užívateľom, aby tie aplikácie používali. Tu však vzniká aj paradox, ktorým trpí samotný aj Linux. Roztrieštenosť distribúcii a verzií. To, že je Android otvorený vzniká veľa odvodenín a mnoho verzií. Výrobcovia mobilných telefónov majú priveľa zariadení, a na tie staré časom zabudnú.

Spoločnosť Apple na rozdiel od Androidu kód svojho operačného systému necháva skrytý pred svetom a vyrába svoje zariadenia. Nemusí čeliť problémom, aké majú mnohé zariadenia podporujúce Android.

Vysvetlím to jednoducho na príklade. Som vlastníkom smartphonu Sony Ericsson Xperia X10i. Tento mobil bol pôvodne dodávaný s verziou Androidu 1.6. Sony Ericsson neskôr spravil ďalší veľký upgrade a upravil pre Xperiu Android 2.1. Používatelia tohto mobilu neskôr dotlačili petíciami a rôznymi požiadavkami Sony Ericsson, aby vydal ešte jednu aktualizáciu na Android 2.3. Týmto to haslo. Xperia X10i podporuje maximálne Android 2.3.3, zatiaľ čo nové Xperie majú už Android 4. Apple má niekoľko verzií svojich produktov, takže nemá problém s aktualizáciami. Prakticky aj ten najstarší model iPodu dostane najnovšiu verziu iOS.

Pre vývojára Android aplikácii to znamená toľko, že stále bude čeliť myšlienke, aby jeho aplikácia bola podporovaná na čo najväčšom počte Android zariadení. Bude musieť zvoliť optimálnu verziu (takzvané API) a držať sa rebríčkoch používanosti.

Pozrime sa, ako je na tom teraz Android. Údaje tohto grafu sú ku dňu 1.8.2012.
Najnovšie štatistiky používanosti si môžete pozrieť na stránke Android Developer

Používanie jednotlivých Android zariadení

Jednoznačne vedie Android 2.3.3, ktorému zodpovedá API level 10. Každý programátor chce, aby jeho produkt správne fungoval na čo najväčšom počte zariadení – takže tohto sa budeme držať aj my. Vyššie verzie Androidu sú spätne kompatiblné so staršími. A nakoľko sám mám na mobile Android 2.3.3, nebudem sa pokúšať prezentovať tie úplne najnovšie funkcie Androidu, ktoré sú dostupné až v najnovšom API – popravde ich ani nepoznám, a na základy programovania v Androide ich ani nepotrebujeme :)

Požiadavky na vývoj

Základnou požiadavkov na vývoj aplikácii pre Android je snaha a vytrvalosť. Ostatné už nejako zvládneme. Ale aby sme sa zbytočne netrápili, potrebujeme mať:

  • základy programovania v Jave
  • vedieť základnú syntax XML
  • ovládať základy databázy SQLite
  • vedieť technickú angličtinu
  • vedieť používať Google :)
  • mozog

Popis platformy

V tejto časti sa ešte pozrieme na Android ako celok. Prezrite si celý diagram.

Architektúra Androidu
Zdroj: Wikipedia

Linux Kernel. Na tej najnižšej úrovni je samotné jadro Linuxu. To sa stará o hardvér a jeho komunikáciu so softvérom. My však drivere písať nejdeme, takže táto úroveň nás zaujímať nebude.

Libraries / Android Runtime. Nad jadrom sú knižnice a aplikácie potrebné na beh celého systému. FreeType sa stará o písmo, SSL poskytuje šifrovanie, OpenGL grafickú základňu a SQLite nám poskytuje databázu. Popritom máme samotné knižnice Androidu a Dalvik Virtual Machine, čo je vlastne špeciálny Java Virtual Machine vytvorený priamo pre Android. Takmer všetky aplikácie pre Android sa píšu v jazyku Java, kompilujú sa do byte kódu Dalviku a ten ich potom interpretuje.

Aplikačný framework poskytuje rozhranie na samotné písanie aplikácii. Dalo by sa povedať, že Aktivita je užívateľské prostredie (UI) aplikácie, Content Provider sa stará o dodávanie dát do aplikácie, Notification manager nám poskytuje prostredie pre posielanie správ a upozornení pre užívateľa.

Na vrchu je samotná aplikácia. Tá využíva komponenty nižších úrovní. Programátor bežných Android aplikácii využíva najmä Aplikačný framework a knižnice. Dalvik VM nám pri programovaní ponúka isté funkcie, ktoré nás informujú o stave aplikácie, prípadne aj stave celého systému.

Na záver...

Táto časť je písaná dosť laicky. Preto všetci, čo ste ešte neprogramovali, nepoznáte objektovo-orientované programovanie a nepoznáte Javu, doučte sa to. V ďalších častiach seriálu sa nebudem zdržiavať s popisom základného programovania v Jave. Programovať pre Android nie je nič zložité, len treba mať základ toho modernejšieho programovania. Domáca úloha z tejto časti je mať splnené všetky body z vyššie spomínaných požiadavok na vývoj. :)

V ďalšej časti seriálu si nainštalujeme Eclipse IDE, Android SDK, popíšeme prostredie a vytvoríme prvý program.

Lukáš Kasič Lukáš Kasič

Bude to hotové, keď to bude hotové.


Hodnoť článok:
19 0

18 komentárov k článku:

Komentovať môžu iba prihlásení

Zaregistruj sa cez bezplatnú registráciu alebo použi login cez Facebook (FB Connect)

Prihlás sa tu, ak už máš profil na Zajtra.sk:


Zabudol som heslo

0 0 Lukáš Kasič 25.10.2012 01:39:55
Žiaľ, ano... mám napísané asi 4 články, ale keď som to porovnal s root.cz, je to skoro to isté - preto som ich ani nevešal. Keby som vedel skôr o tom seriáli na roote, tak so seriálom ani nezačínam. :-/
0 0 Demi Zon 24.10.2012 13:24:39
lol, konecna so serialom?
2 0 Andrej Badin 25.8.2012 20:57:43
Nedobrá vec je čakať na "seriál" 2 týždne :-/
Medzičasom som dostal job na Android appku, tak som sa do toho pustil sám a teraz si to nahráva videá cez kameru, ťahá a odosiela obsah na server... Čo s toho vyplýva? Ak sa do toho človek nepustí sám, a nebude robiť niečo reálne, bude to trvať dlho
0 0 Lukáš Kasič 17.8.2012 09:57:33
@Miloš jednoducho to urobíš tak, že pridáš horizontálny LinearLayout (alebo TableRow) a doňho vložíš tri Buttony vedľa seba.

Druhá vec, Buttonom musíš špecifikovať atribúty
android:layout_width="fill_parent"
android:layout_height="fill_parent"

@Lukáš Čaniga o tom mám napísané v druhom dieli. Ale ako sa (čoskoro) dočítaš, neodporúčam NetBeans, pretože jeho Android plugin je dosť slabý a oproti Eclipse je to minimálna funkcionalita.
0 0 Lukáš Čaniga 16.8.2012 23:04:50
Super článok, teším sa na pokračovanie.. Chcel by som sa spýtať, či by nebolo možné zabŕdnuť aj do Netbeans-u, nie len Eclipsu pri nastavovaní SDKcka atď.. Vďaka :)
0 0 Miloš 16.8.2012 22:22:29
Mňa by zaujímalo (možno to na roote je, ale so seriálom som len na prvých dieloch), že ako dosiahnem, aby sa viewy v jednom rade natiahli na celú šírku, resp. výšku. Kto nevie čo myslím, nech si nainšaluje napr. nejakú kalkulačku. Tlačítka sú roztiahnuté po celej obrazovke. Keby píšem layout, tak by sa mi nechcelo prepočítavať veľkosť daného View na percentá, aby sa mi všetky vošli a keby chcem pridať ďalší, tak môem prepočítavať znova. Hodnota match_parent je pre jeden View, ale ja chcem niečo ako match_parent, ale pre viac viewov.
0 0 Lukáš Kasič 14.8.2012 13:52:10
Všetko má svoj čas, aj prvý program :) Ten bude v druhej časti, ale pripravujem naraz druhý a tretí diel tak to trochu trvá (nemám teraz čas to dokončiť). Seriál na roote je skutočne kvalitný, a keď som si ho prečítal, moje prvé dojmy boli, že tento seriál nechám tak. Ale nenechám, pokúsim sa čo najmenej opakovať, doplniť ďalšie veci a vysvetliť to ešte jednoduchšie.

Taktiež tí, čo ste sa učili z rootu bol by som veľmi rád, keby ste mi napísali, čo vám robilo problémy :)

Čo sa týka dĺžky článkov, také krátke ako je tento prvý diel rozhodne nebudú :) Budem sa dosť často odkazovať aj na iné zdroje, možno aj na seriál na roote a ohľadom Androidu je plno kvalitných prednášok z Google IO.
0 0 Miloš 14.8.2012 12:00:54
A aby som napísal aj niečo k tomuto seriálu:
Podľa mňa tento diel nemá s programovaním nič. Je to len obyčajné predstavenie Androidu ako takého a dalo sa to riešiť tak, že by sa do článku dal odkaz na podobné predstavenie Androidu z niekadiaľ inakadiaľ a tu v tomto prvom dieli mohlo byť nejaké prvé programovanie, tzv. Heloo World! Na druhej strane, aby som nebol príliš kritický, rád by som bol keby to autorovi aj vydržalo a seriál dokončil do konca a prajem mu, nech má do písania seriálu čo najviac chuti a pozitívnej odozvy, no a hlavne času, aby diely pribúdali čo najrýchlejšie.
0 0 Miloš 14.8.2012 11:57:36
Lukáš Kašič: Mne sa tá dĺžka častí tutoriálu na roote práveže páči a musím priznať, že tak kvalitný tutoriál ako je ten na roote som ešte nevidel. Bodaj by všetky boli také.
3 0 Ivan Homola 12.8.2012 19:47:21
@Lukáš Kasič výborný článok, dĺžka je optimálna, máš pravdu dlhšie články dosť ľudí odradia alebo unudia. Teším sa na ďalší diel. :)
1 0 Michal Obeda 10.8.2012 23:45:38
na mobilnej aplikácii sa už pracuje, ale vďaka za podporu ;-)
1 0 Lukáš Kasič 10.8.2012 21:22:31
@Milan Dvorský - mobilnú verziu by som uvítal aj ja. Rozmýšľal som, že by som vytvoril Zajtra.sk aplikáciu v rámci seriálu... ale Boh vie, kedy ten seriál bude hotový :)
2 0 Milan Dvorský 10.8.2012 16:17:32
2 all: tym som nechcel samozrejme kritizovat. ked dvaja robia to iste, nie je to vzdy to iste :) cize som zvedavy aj ja na tento serial. ale spytam sa len na mobilnu verziu webu, ci je nejaka dostupna. v praci travim 12 hodin do dna, tak som chcel vediet, ci mozem citat aj cez smradfon :)
1 0 Peter Papp 10.8.2012 14:48:11
piš piš, na root som chodil niekedy, teraz chcem chodit na zajtra.sk ! :D
0 0 ebi 10.8.2012 09:00:05
Jasne, pis dalej!
0 0 Lukáš Kasič 10.8.2012 01:49:56
O tom seriáli na root.cz som sa až dnes (resp. včera, keďže je po polnoci) dozvedel - dostal som už viacero správ o tejto malej konkurencii. Časti tutoriálu na roote mi prídu až prehnane dlhé, čo by napríklad mňa odradilo. Pôsobí to priveľmi nahustene, plné informácii, ktoré možno ani nebudem potrebovať - alebo ich nájdem ľahko v Android API Guide. Taktiež napríklad ja som rád, keď existujú alternatívy. :)

Písať budem podľa toho, či bude o ďalšie časti záujem. Ak Boh dá, tak druhý diel bude v nedeľu :)
0 0 Milan Dvorský 10.8.2012 00:59:50
nieco podobne najdes inak aj na root.cz . som zvedavy na dalsie pokracovanie tohto serialu.
0 0 Peter Papp 9.8.2012 23:34:08
Vau, vždycky som chcel vedieť ako sa vlastne vyrába android appka... Teším sa na ďalší diel :) pekne laicky napísaný článok
Zajtra.sk > Programovanie > Seriály > Programujeme pre Android (1. diel) – Úvod k platforme


Kritika

Vieš ako robiť veci lepšie? Pomôž našim odvážnejším členom a skritizuj im projekty!

Reklama

Seriály zo Zajtra.sk

Reklama