Klávesové zkratky na tomto webu - základní
Přeskočit hlavičku portálu


Naučíme vás programovat aplikace pro android. Začínáme

aktualizováno 
Zajímalo vás někdy, jak to vypadá uvnitř každé android aplikace, kterou spustíte na svém telefonu? Nabízíme vám příležitost vyzkoušet si práci programátora nebo alespoň otestovat vědomosti v našem jednoduchém mobilním kvízu.

Programování pro operační systém Android. Ilustrační foto | foto: Mobil

Programování pro operační systém Android není úplně jednoduchá záležitost. Rychle si sice osvojíte podstatné základy, ale s rostoucí velikostí projektu můžete narážet na problémy s rychlostí aplikace nebo její nestabilitou. Účelem článku je ukázat, jak vypadá android aplikace zevnitř a jak jsou napojeny jednotlivé obrazovky na vlastní logiku programu. Pokud vás toto neláká, můžete rovnou vyzkoušet mobilní kvíz, který vznikl právě pro výukové účely.

Dodejme, že ačkoliv nemusíte umět vůbec programovat a přesto si chcete vytvořit vlastní kvíz, stačí pouze přidávat nové řádky do kódu. Tyto řádky totiž odpovídají novým otázkám, které budou součástí kvízu. Pro plné porozumění kódu je potřeba mít zkušenosti s programovacím jazykem Java, který je základním stavebním kamenem androidu. Důležitá je i alespoň částečná znalost angličtiny. Odkazy na stažení jednotlivých projektů jsou na konci článku.

Příprava nástrojů

Nyní přichází trochu nudnější část, která se týká instalace vývojového prostředí. Kompletní návod je uveden zde a my si dále předvedeme pouze základní náležitosti instalace. Google jako vývojové prostředí oficiálně podporuje pouze Eclipse IDE, které je zdarma a odkaz na stažení je zde. Bohatě postačí verze Classic, do níž se posléze přidají potřebné komponenty pro vývoj.

Vzhledem k tomu, že android stojí a padá na Javě, je potřeba si ještě stáhnout JDK (Java Development Kit) v základní verzi bez Netbeans či Java EE. JDK je základním nástrojem pro práci s Javou nehledě na to, jestli programujete aplikace používané pro běžné počítače nebo mobily. V obou případech nemusíte při instalaci volit žádná speciální nastavení a pouze se nechte provést několika jednoduchými kroky instalace.

Další fází je stažení takzvaného SDK (Software Development Kit) pro Android, což je balíček s nejrůznějšími nástroji, které využívá právě Eclipse nebo některé z nich můžete používat i vy. Patří sem nástroje pro úpravu grafických prvků, testování nebo optimalizaci vzhledu jednotlivých obrazovek: zkrátka kompletní výzbroj pro práci s danou platformou. Balíček si stáhněte a rozbalte na libovolné místo na disku. Nejčastěji se používá umístění v C:\Program Files.

Programování pro operační systém Android
Programování pro operační systém Android
Programování pro operační systém Android

Nyní už máme všechny základní díly skládanky, které je potřeba složit dohromady. K tomu nám poslouží ADT (Android Development Tools) Plugin do prostředí Eclipse, který nám přidá nabídky týkající se androidu. Plugin stáhnete do Eclipse přes nabídku Help – Install New Software - Add. Zde dále zvolte libovolné jméno a jako adresu repository přidejte https://dl-ssl.google.com/android/eclipse/. V dolním okně byste měli mít na výběr řádek Developer Tools, který označte pro stažení. Pokud na vás v další části vyskočí hlášení o autenticitě nebo validitě softwaru, můžete s tím bez větších rozpaků souhlasit.

Blížíme se téměř do finále celé instalace a zbývá pouze správně nakonfigurovat výše zmíněný plugin. Odskočte si tedy v Eclipse do nabídky Windows – Preferences – Android a do políčka napravo zadejte cestu k místu, kam jste rozbalili SDK z druhého kroku instalace.

Zbývá už jen poslední krůček: stažení konkrétní platformy (resp. verze operačního systému Android) a s tím souvisejícího emulátoru androidu. Emulátor je náhrada za fyzické zařízení a slouží k testování vaší aplikace přímo na PC. Díky tomu, že emulátor běží na odlišené výpočetní architektuře než běžný počítač (x86 vs. ARM), je jeho běh o něco pomalejší než u reálného zařízení, které byste mohli mít připojené přes USB.

Programování pro operační systém Android
Programování pro operační systém Android
Programování pro operační systém Android

Danou platformu si stáhnete z nabídky Windows – Android SDK Manager. Na výběr máte prakticky ze všech verzí androidu, co za poslední roky vyšly. Doporučujeme zvolit platformu Android 2.3.3 a z celé palety možností vám bude stačit zaškrtnout pouze SDK Platform. Stažené byste rovněž měli mít ze sekce Tools položky Android SDK Tools a Android SDK Platform-tools.

Nový emulátor vytvoříte v nabídce Windows – Android AVD Manager – New, kde vyplníte název emulátoru (libovolný), zvolíte platformu a případně rozlišení displeje. Emulátor spustíte pomocí tlačítka Start. Při spuštění můžete zvolit, aby se velikost displeje přizpůsobila velikosti reálného zařízení pomocí volby Scale display to real size.

Importujeme projekt

Po nezbytné části instalace nástrojů se dostáváme konečně k samotné tvorbě projektu. Nový projekt můžete vytvořit přes nabídku File – New – Project – Android – Android Project. Pro účely tohoto článku jsme vytvořili dva projekty. Jeden je kompletní zdrojový kód pro náš kvíz a v druhém cvičném projektu několik řádků kódu chybí a je na vás, abyste je doplnili.

V obou případech jsou pro větší názornost jednotlivé řádky kódu okomentovány s vysvětlením, co který dělá. Pro začlenění stažených projektů stačí v Eclipse zvolit nabídku File – Import – General – Existing Projects into Workspace a zvolit složku, kam jste rozbalili stažený projekt. Po importu projektu bude nejspíše nutné ještě zvolit nabídku v horní liště Project – Clean a zvolit daný projekt.

Programování pro OS Android

Android projekt se skládá z několika různých částí. Vývojáři platformy si dali tu práci a pečlivě oddělili samotnou logiku aplikace, která se nachází ve složce \src (Source), od vlastního vzhledu aplikaci ze složky \res (Resources). V druhé zmiňované složce se nacházejí zejména XML soubory popisující podobu jednotlivých obrazovek (tzv. layouty) a kupříkladu ikony nebo obrázky, které se používají napříč celou aplikací. Layouty obecně určují, kde se má na displeji nacházet jaké tlačítko, textové pole nebo podobný ovládací prvek určený pro uživatele.

Programování pro OS Android

Dále v podsložce \values a souboru strings.xml můžete najít dvojice slov a jejich překladů pro jednotlivé jazyky. V našem případě jsou tyto soubory dva – pro češtinu a angličtinu. Složka \res bývá většinou hodně rozvětvená, protože se podle ní řídí, jaké obrázky nebo layouty budou použity pro zařízení, na kterém je aplikace právě spuštěna. Tedy kupříkladu, jestli se má použít layout určený pro malé či velké displeje mobilu nebo obří tablety.

Prozkoumáváme zdrojový kód

Ve složce \src\cz.mobil.quiz naleznete čtyři soubory, které jsou v tuto chvíli klíčové. Jsou to tři takzvané Activity a jedna pomocná třída Question.java, která reprezentuje jednotlivé otázky kvízu. Activita je zjednodušeně řečeno jedna uživatelská obrazovka, která má svůj layout a logiku jednotlivých operací, které se pod danými tlačítky nebo textovými poli skrývají.

Oficiální příručka

Tento článek není v žádném případě náhradou za oficiální materiály z Android Developers Guide. Je spíše malým okénkem do světa programování pro operační systém Android. Zdrojový kód rovněž nemá ideální podobu a byl velmi zjednodušen pro potřeby tohoto článku.

Zaměřme se nyní na soubor MainActivity.java, kde se v metodě onCreate právě sváže vzhled obrazovky (layout) a daná Activita pomocí metody setContentView. Na androidu je skvělé, že automaticky vytváří odkazy na všechny soubory umístěné v \res a můžeme k těmto souborům přistupovat pomocí souboru R.java. V našem případě nastavíme vzhled obrazovky na R.layout.main, což odpovídá souboru main.xml.

Tlačítka a akce, která se má provést po jejich stisknutí, je svázána pomocí tzv. listenerů (posluchačů). V našem případě je nutné tedy provázat tlačítka z hlavního menu na odpovídající akce, jako je spuštění kvízu, zobrazení sekce O aplikaci a ukončení aplikace. Tlačítka a další elementy v XML jsou opět identifikována pomocí svého jedinečného Id, které je možné najít ve zmiňovaném souboru R.java. Stačí tedy zavolat metodu findViewById s Id tlačítka (naleznete ho v souboru layoutu) a posléze k němu přidat náležitého posluchače pomocí metody setOnClickListener.

Programování pro OS Android

U prvních dvou tlačítek menu je potřeba spustit novou Activitu. To se provádí pomocí metody startActivity s parametrem Intent. Intent je obecně řečeno zpráva, která se šíří operačním systémem, kde si jí mohou zachytávat jednotlivými příjemci. Takto aplikace zachytávají Intenty, které obsahují informace o nově došlé SMS nebo příchozím hovoru. V našem případě tato zpráva bude mít jasně daného příjemce, kterou bude Activita kvízu nebo sekce O aplikaci.

Intent tedy bude mít jako parametr současnou Activitu (MainActivity.this) a cílovou Activitu (QuizActivity.class nebo AboutActivity.class). Přiřazení layoutu a posluchačů k tlačítkům je v těchto Activitách obdobné. Můžeme se tedy posunout na samotné zobrazení otázek.

Kvíz začíná

Kvízové otázky jsou uloženy v seznamu s názvem questionList, který jsme naplnili pomocí metody createQuestionList. Právě v této metodě můžete přidávat nebo měnit jednotlivé otázky. Stačí přidávat jednotlivé řádky a měnit pouze dané texty. Stačí dodržet pořadí, tedy jako první text otázky, tři možné odpovědi a číslo správně odpovědi. Pozor na to, že se čísluje od nuly. Dále můžete změnit proměnnou questionCount, která určuje, kolik dostane uživatel otázek. O nic víc se nemusíte starat. Stačí tedy pouze přidávat nové řádky a případně změnit počet otázek v rámci jedné hry.

Programování pro OS Android

Z pohledu programování pro android je zajímavá metoda fillQuestion, která nalezne jednotlivá textová pole u tlačítek odpovědí (tzv. RadioButton)  podle Id a změní jejich popisek a text otázky. Opět se používá metoda findViewById a nastavení textu pomocí metody setText. Uživateli se tak zobrazují stále stejná tlačítka, ale pouze se mění jejich popis. Na závěr celého kvízu se zobrazí dialog showStatistics, kde se do těla zprávy dialogu vyplní počet otázek, na které uživatel odpověděl a počet těch správně zodpovězených. Zbylé části kódu se týkají běžného programování v operačním jazyku Java a samotného principu losování dalších otázek.

Úkol pro vás

Pokud chcete pouze upravovat nebo přidávat otázky, stáhněte si kompletní verzi zdrojových kódů. Naopak pokud chcete něco doplňovat i nad rámec otázek, zvolte druhý projekt. Chybějící části kódu jsou pouze v souborech MainActivity.java a QuizActivity.java a jsou jasně označené. Doplňte na správná místa řádky kódu pro nalezení tlačítek v layoutu a svázání s danou akcí. Upravený projekt spustíte, pokud kliknete pravým tlačítkem na projekt a zvolíte možnost Run As – Android Application. Pokud ještě nebyl emulátor spuštěný, nastartuje se automaticky.

Programování pro OS Android
Programování pro OS Android

Instalační soubor .apk naleznete na disku ve složce s projektem v adresáři \bin. Tento soubor můžete libovolně šířit a posílat ostatním. Ti však musí mít v telefonu nastaveno, že dovolují instalovat aplikace, které nepocházejí z Google Play (Nastavení – Aplikace – Neznámé zdroje).





Nejčtenější

Asus Zenfone 4 Selfie
Extrémní rozdíl. Základní model je čtyřikrát levnější než ten nejlepší

Asus uvádí na evropský trh své smartphony řady Zenfone 4. Přístroje představené už v srpnu doma na Tchaj-wanu firma přizpůsobila evropskému trhu a chce se o...  celý článek

Huawei Mate 10
Kdo bude mít nejdražší smartphone na trhu? iPhone X ohrozí nový Huawei

Huawei se vypracoval na jednoho z největších producentů smartphonů. Odpovídá tomu i sebevědomí čínské značky. Chystaný model Mate 10 má mít v nejvyšší...  celý článek

Ohnutý iPhone 6 Plus
Tři roky, nebo jeden? Apple má o životnosti iPhonu jasno, řekl u soudu

Apple iPhone je nejtrvanlivější zařízení na trhu, hlásil letos v srpnu viceprezident produktového marketingu firmy. A už v září se společnost u soudu brání, že...  celý článek

Google Pixel XL 2
Nové Pixely od Googlu odhaleny, ovšem zatím jen zezadu. Levné nebudou

Google oficiálně představí nové smartphony řady Pixel za necelé dva týdny. Podoba novinek je už odhalena, ovšem zatím pouze zezadu. Známé jsou už i ceny.  celý článek

Google Pixel 2
Google kupuje zaměstnance mobilní divize HTC za více než miliardu

Google a HTC oznámili dohodu, díky které přejdou zaměstnanci HTC pracující na vývoji telefonu pod křídla amerického giganta.  celý článek

Další z rubriky

Netradiční fotoaplikace Gudak vás donutí nad fotkami zase přemýšlet
Za 23 korun vám aplikace fotku z iPhonu ukáže až za tři dny

Vnímání fotografie se za posledních pár let výrazně změnilo. Díky záznamovým médiím již totiž nemusíme přemýšlet nad každým snímkem jako kdysi. Doby, kdy se...  celý článek

Záchranná služba představila ve středu oficiální mobilní aplikaci, pomůže...
Aplikaci české záchranky používá už 330 tisíc lidí, čekají ji vylepšení

Aplikaci Záchranka, která v naléhavých případech umožňuje přivolat si pomoc přes mobil, čekají v dubnu inovace. Spustí se zdokonalené funkce pro neslyšící a...  celý článek

Virus pro Android
Na aplikace alternativních taxi útočí virus. Pase po údajích ke kartám

Uživatelé mobilních aplikací alternativních taxi včetně aplikace Uber by měli být obezřetní. Ohrožuje je totiž nový trojský kůň, který od uživatelů láká údaje...  celý článek

Najdete na iDNES.cz



mobilní verze
© 1999–2017 MAFRA, a. s., a dodavatelé Profimedia, Reuters, ČTK, AP. Jakékoliv užití obsahu včetně převzetí, šíření či dalšího zpřístupňování článků a fotografií je bez souhlasu MAFRA, a. s., zakázáno. Provozovatelem serveru iDNES.cz je MAFRA, a. s., se sídlem
Karla Engliše 519/11, 150 00 Praha 5, IČ: 45313351, zapsaná v obchodním rejstříku vedeném Městským soudem v Praze, oddíl B, vložka 1328. Vydavatelství MAFRA, a. s., je členem koncernu AGROFERT.