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
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.
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,
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.
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:

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

@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.

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 :)

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.

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.

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.

@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. :)

@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 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 :)

piš piš, na root som chodil niekedy, teraz chcem chodit na zajtra.sk ! :D

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 :)

nieco podobne najdes inak aj na root.cz . som zvedavy na dalsie pokracovanie tohto serialu.

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
Novinky
2 rokmi
Aprílové vtípky: Výběr toho nejlepšího kolem počítačů, internetu a techniky
Výběr nejlepších aprílových vtípků 2019
2 rokmi
Fotky Google sa učia lepšie pracovať s dokumentmi
Spoločnosť Google prostredníctvom svojho účtu na sociálnej sieti Twitter oficiálne predstavila novú funkciu svojej aplikácie Fotky Google.
2 rokmi
Gmail dovoľuje naplánovať poslanie emailu neskôr
Spoločnosť Google dnes oznámila pridanie funkčnej novinky do svojej populárnej webmailovej služby Gmail, možnosť naplánovať poslanie emailu na neskôr.
3 rokmi
Používatelia Chrome začali prechádzať na nový rýchlejší Firefox, avizujú dáta Mozilly
Nový lepší a rýchlejší prehliadač Firefox 57 Quantum vyúsťuje zrejme do viac používateľov prechádzajúcich respektíve vracajúcich sa na tento prehliadač z iných prehliadačov, na osobných počítačoch aj smartfónoch.
3 rokmi
Briti dokončili kúpu SK-NIC-u. Nové .sk domény nechávajú za 8.4 eur
Predaj správcu slovenskej domény .sk, SK-NIC, bol dokončený a novým majiteľom po telekomunikačnej skupine Danubiatel, do ktorej patrí napríklad Swan a 4ka, je britská spoločnosť CentralNic.
Staršie novinky »TOP dlhšie
- Aj ty môžeš byť najčítanejší. Napíš článok »
TOP tento mesiac
- Aj ty môžeš byť najčítanejší. Napíš článok »
Nové články:
- 14.Kingston uvádza 128GB verziu šifrovaného USB
sep - 10.Tiché COMBO Logitech MK295
sep - 24.Farbičky v HTML a CSS, alebo?
aug - 23.Pochopte, ako vytvoriť virtuálny obchod v 6 krokoch
aug - 29.Kamery, cloud a bezpečnosť
jul - Viac »
- Aj ty môžeš byť najčítanejší. Napíš článok »
Pekné veci
Pekné veci
Pekné veci
Pekné veci
Posledné komentáre
- Pokiaľ používaš nejaký lepší bitmapový editor, napr. Photoshop, a chceš robiť retuše, ed...
- Veľmi dobrý článok a pre začiatočníka úplne odrazový mostík. https://ludwaismania1.blogs...
- Nova international a prima lus majú vysporiadané pravs ale aj CNN prima News
- Tv Joj nijako neobmedzuje šírenie médii, ktoré majú vysporiadané licenčné práva pre Slov...
- Nech televizie vrátia naspäť originál verzie a tie internationali nech zrušia. Každý si ...
Kritika
Vieš ako robiť veci lepšie? Pomôž našim odvážnejším členom a skritizuj im projekty!
Reklama
Slovenská IT komunita
Seriály zo Zajtra.sk
· Ako písať blog
· Ako sa stať PHP ninja s Yii Frameworkom
· Aplikácie pre Facebook
· CSS triky
· iOS vývojára príhody a skúsenosti
· Jednoduché programy, ktoré vám ušetria čas
· Modelovanie webového sídla
· Nauč sa CodeIgniter [HD]
· Nauč sa jQuery [HD]
· Nette PHP framework
· OOP v Javascripte
· Programujeme v Jave
· Programujeme v Lazaruse
· Programujeme v Pythone
· Robíme Eshop v ASP.NET Web Pages
· Slovenskí iOS developeri
· Webdizajn krok po kroku
· Yablkov TurboTip [HD]
Ž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. :-/