Lekce 18 - Programujeme Android hru - Nahrání hry do zařízení
V předchozí lekci, Programujeme Android hru - Jednoduchá herní smyčka, jsme si rozvětvili provádění kódu do stavů hry READY, RUNNING a GAMEOVER.
Vážení přátelé, vše jednou skončí. Stejně tak dnešním posledním
dílem končí náš seriál, který je příkladem toho, že i jediný
amatérský vývojář může sám vytvořit jednoduchou hru. Na
Google Play, kde jsem ostrou verzi naší hry zveřejnil, jsou jako
vývojáři uvedeni pragmaticdevelopers. Nenechte se tím mýlit, za projektem
skutečně stojím jen já. Název jsem si dal v množném čísle, protože
jsem měl v úmyslu zapojit do projektu ještě jednoho nebo dva nadšence.
Bohužel, nikoho jsem na spolupráci bez vidiny zisku kupodivu nesehnal Přestože lze tvořit samostatně,
doporučuji přizvat k sobě ke spolupráci stejně nadšeného kamaráda, se
kterým si úlohy na projektu rozdělíte.
Odhalení a Motivace - klidně přeskočte
Nechci být za lháře a nikoho klamat, proto musím přiznat, že jsem hru
nevytvářel z pouhého nadšení. V počátku v tom byla určitá počáteční
krásná forma naivity Byl
jsem inspirován vývojářem Nguyen Ha Dong, který vytvořil jednoduchou hru
Flappy bird. V době největší slávy této hry kolovala po internetu zpráva,
že Flappy bird vydělával na reklamě svému tvůrci v přepočtu milion korun
denně. Už jsem se viděl v hotelu v nějaké exotické destinaci.
Business plán byl jednoduchý. Hráč Wacky chicken, aby dosáhl skóre,
musí neustále urychlovat slepici klikáním na krmivo, v tom se nečekaně a
zákeřně objeví přes celý displej reklama. Hráč je chudák rozklikaný a
proto setrvačností na tuto reklamu klikne. A zbohatnutí? Ne, uhádli jste
správně, žádné finanční tornádo nepřišlo, nepřišlo totiž vůbec nic
Odhalením business plánu chci zodpovědět, čím a proč se drobně liší verze hry v našem seriálu a publikovaná verze na Google Play.
V publikované jsou navíc tyto prvky: reklama, odkaz na facebook,
žebříček nejvyšších dosažených scores a tlačítka. Reklama je jasná,
vývojáři a poskytovateli má vydělávat peníze, prodejci zase pomoci prodat
produkt/službu. Odkaz na Facebook pro popularizaci hry a vývojáře. Herní
žebříček měl zajistit, aby hráči měli motivaci se předhánět, hrát
tak více a tím více klikat na reklamu. Konečně tlačítka jsou nutná,
aby tyto přidané prvky šly spouštět.
Proč tohle všechno není v našem tutoriálu? Protože by to mohlo mnoho čtenářů odradit, už takhle je seriál poměrně dlouhý. Vyžadovalo by to další strany textu s postupy, jak reklamu a herní žebříček do naší hry implementovat, další zdrojový kód s obsloužením těchto prvků. Případní zájemci si postupy a API najdou v publikované dokumentaci sami.
Nahrání naší aplikace do zařízení
Dnešní lekce nebude o psaní kódu. Ukážeme si, jak naší hru nahrát do mobilního telefonu nebo tabletu. Před samotným nahráním ještě potřebujeme v projektové složce wacky-chicken-android nahradit výchozí ikony:

Cesta k těmto ikonám je ...workspace\wackychicken\android\res
.
Pokud bychom to neudělali, tak se nám v zařízení, na kterém naší
aplikaci budeme spouštět, bude u naší hry objevovat ikona Androida. My
chceme ikonku naší hloupé slepice. Ikony jsou ke stažení níže. Pokud jsme
nahrazení provedli při spuštěném Eclipse, klikneme pravým tlačítkem na
dotčenou projektovou složku a z nabídky vybereme Refresh.
Znám dva možné způsoby nahrání appky do zařízení. Druhý ale umím jen pro Windows. Ukážeme si obě možnosti.
První postup
Prvním postupem je exportování aplikace jako "Podepsaného balíčku aplikace". Podmínkou tohoto postupu, aby nám hra šla instalovat, je povolení neznámých zdrojů v nastavení zabezpečení:

Naší hru vyexportujeme rovnou do zařízení. Připojme tedy náš mobil nebo tablet pomocí USB kabelu do PC. Gestem potažením oznamovací lišty směrem dolů vyvoláme nabídku rozhraní USB, kde nastavíme Úložiště USB:

Opětovným potažením oznamovací lišty směrem dolů a stisknutím tlačítka "USB připojeno" vyvoláme nabídku se zeleným robotem Androida:

Po zapnutí úložiště se objeví oranžový robot s hláškou, že úložiště USB je používáno:

Přejdeme do Eclipse a provedeme export balíčku:

Potvrdíme, že exportujeme projektovou složku wacky-chicken-android:

Pokud ještě nemáme, vytvoříme si úložiště pro náš klíč:

Vytvoříme si svůj klíč a do tohoto úložiště ho uložíme:

Náš balíček se konečně podepíše, my už ho jen uložíme. Úložiště USB máme zapnuté, takže rovnou můžeme uložit do zařízení. Na fotografii níže ukládám do interního úložiště do složky download, samozřejmě lze uložit jinam. Klikneme na tlačítko Save:

Wacky chicken nyní máme v mobilu nebo tabletu, pod oranžovým robotem tlačítkem vypneme úložiště USB. Spustíme si nějakého správce souborů a nalezneme náš nahraný balíček:

Klikneme na něj a vyskočí dotaz, kam se má instalovat. Potvrdíme volbu "Let the system decide":

Potvrdíme poslední dotaz, zda nainstalovat:

Proběhlo:

Spustíme, úspěšně běží na mobilním telefonu:

Druhý postup
V případě, kdy má operační systém k dispozici vestavěné adb drivery pro naše zařízení, popř. si je sám dodatečně stáhne, je druhý postup instalace naší aplikace do zařízení prostý. Zařízení máme USB kabelem připojené k PC, v Eclipse označíme projektovou androidí složku, stiskneme tlačítko play (na obrázku zakroužkováno červeně), hra se po stisku tlačítka OK sama okamžitě do zařízení nainstaluje a spustí:

Ano, pokud se v nabídce objeví náš mobilní telefon nebo tablet, jsou adb drivery nainstalovány. Problém nastává, pokud se zobrazí nabídka bez našeho zařízení. Řešení spočívá v instalaci adb ovladačů dodaných výrobcem, alternativně můžeme použít univerzální adb ovladače. Výrobci někdy tyto ovladače dodávají společně se zařízením, ukládají je na virtuální jednotku CD-ROM, někdy je nutné tuto jednotku zapnout. Postup je stejný, jako jsme si uváděli výše při zapínání úložiště USB. Gestem potažením oznamovací lišty směrem dolů vyvoláme nabídku rozhraní USB, kde místo výběru úložiště USB vybereme Integrovanou jednotku CD-ROM - odkazuji na obrázek výše. Po tomto zapnutí se v průzkumníkovi na tuto jednotku podíváme:


A jé, žádné ovladače tam nejsou, jen nějaké pdf-ko s popisem architektury USB konektorů. Demonstrativně si tedy ukážeme, jak nainstalovat alternativní adb drivery. Důsledně varuji, před použitím závadných (zavirovaných) adb ovladačů! Výběr těch správných je vaší zodpovědností, pokud si nejste jisti, neprovádějte a používejte první postup.
Chceme tlačítkem play rovnou z Eclipse nainstalovat a spustit naší hru v zařízení. Po stisknutí tlačítka se zobrazí prázdná nabídka, adb tedy nejsou v OS nainstalovány:

Jdeme do správce zařízení hledat možnou příčinu, kde objevíme vykřičník u našeho zařízení:

Klikneme na naše zařízení pravým tlačítkem myši a z nabídky vybereme "Aktualizovat software ovladače...":

Pokračujeme zvolením druhé nabízené možnosti "Vyhledat ovladač v počítači" zde na obrázku "Browse my computer for driver software":

Procházením souborové cesty vybereme náš adb ovladač a dáme další:

Zobrazí se varovná hláška, že Windows nemůže ověřit vydavatele software, pouze pro náš účel předvedení postupu klikám na volbu "Přesto instalovat":

Ovladač není digitálně podepsán a je tedy potenciálně nebezpečný. My si to zde takto ukazujeme pouze pro ilustraci postupu, protože jsem digitálně podepsaný ovladač pro své zařízení nesehnal. Vy použijte originál adb ovladač od výrobce nebo si najděte digitálně podepsaný ovladač a pokud tyto nejsou k dispozici, využijte první postup nahrání hry popsaný výše.
Po potvrzení instalace se objeví zpráva o úspěšném provedení instalace - klikneme na zavřít:

Vykřičník nám ve správci zařízení zmizel a nyní se naše zařízení objevuje jako Android Device:

Znovu spustíme Eclipse, nyní se po stisknutí tlačítka play naše zařízení v nabídce opět objevuje a můžeme tak naší hru okamžitě instalovat a spustit.
Na závěr nutno dodat, že tento druhý postup nahrání appky do zařízení, je pro ladící účely. Tím, že se nemusíme starat o klíč, bude appka do zařízení nainstalována s debug klíčem.
Finální exportovaný apk balíček naší hry a ikony jsou níže přiloženy ke stažení.
Měl jsi s čímkoli problém? Stáhni si vzorovou aplikaci níže a porovnej ji se svým projektem, chybu tak snadno najdeš.
Stáhnout
Stažením následujícího souboru souhlasíš s licenčními podmínkami
Staženo 39x (1.72 MB)
Aplikace je včetně zdrojových kódů v jazyce Java