Android: Ladění aplikace
Z MiS
(Rozdíly mezi verzemi)
(Popsáno spouštění .apk na mobilu přímo) |
(Doplnění popisu použití AVD (částečně).) |
||
(Není zobrazena 1 mezilehlá verze od 1 uživatele.) | |||
Řádka 2: | Řádka 2: | ||
<div class="Motto">Šest programátorských zákonů: 1. V každém programu je alespoň jedna chyba. 2. Každý program lze zkrátit alespoň o jeden řádek. 3. Nejjednodušší chyby se nejhůře hledají. 4. Každou opravou se do programu zanese nová chyba. 5. Když už se zdá, že program je v pořádku, určitě jsme něco přehlédli. 6. Programátor dělá, co umí. Počítač si dělá, co chce.</div> | <div class="Motto">Šest programátorských zákonů: 1. V každém programu je alespoň jedna chyba. 2. Každý program lze zkrátit alespoň o jeden řádek. 3. Nejjednodušší chyby se nejhůře hledají. 4. Každou opravou se do programu zanese nová chyba. 5. Když už se zdá, že program je v pořádku, určitě jsme něco přehlédli. 6. Programátor dělá, co umí. Počítač si dělá, co chce.</div> | ||
+ | |||
== Jak zkoušet/ladit aplikace pro Android? == | == Jak zkoušet/ladit aplikace pro Android? == | ||
Při vývoji aplikací pro Android je ladění náročnější v tom, že aplikace nelze spustit přímo na počítači, na kterém vývojář pracuje. Tedy alespoň do doby, než někdo napíše dobré vývojové prostředí běžící na Androidu... ;) | Při vývoji aplikací pro Android je ladění náročnější v tom, že aplikace nelze spustit přímo na počítači, na kterém vývojář pracuje. Tedy alespoň do doby, než někdo napíše dobré vývojové prostředí běžící na Androidu... ;) | ||
+ | |||
== 1. Spuštění *.apk na mobilu == | == 1. Spuštění *.apk na mobilu == | ||
* Nejjednodušší metoda, ale neumožňuje ladění v pravém slova smyslu. | * Nejjednodušší metoda, ale neumožňuje ladění v pravém slova smyslu. | ||
* Ve vývojovém prostředí přeložíme aplikaci. Balíček <code>*.apk</code> pak zkopírujeme do mobilního zařízení a spustíme. Zkoušíme chování aplikace. | * Ve vývojovém prostředí přeložíme aplikaci. Balíček <code>*.apk</code> pak zkopírujeme do mobilního zařízení a spustíme. Zkoušíme chování aplikace. | ||
+ | ; Výhody: | ||
+ | * Není třeba na počítači ani v mobilním zařízení nic instalovat. | ||
+ | * Stačí soubor <code>*.apk</code> zkopírovat do cloudového úložiště. | ||
+ | * Aplikaci vidíme přímo na mobilním zařízení v reálné podobě. | ||
; Nevýhody: | ; Nevýhody: | ||
* Vyžaduje povolit (alespoň dočasně) spouštění aplikací ze zdrojů jiných než Google Play. | * Vyžaduje povolit (alespoň dočasně) spouštění aplikací ze zdrojů jiných než Google Play. | ||
Řádka 14: | Řádka 20: | ||
* Nemáme možnost sledovat, co se děje uvnitř aplikace. | * Nemáme možnost sledovat, co se děje uvnitř aplikace. | ||
* Můžeme takto zkoušet aplikaci jen na zařízeních a verzích Androidu, která máme fyzicky k dispozici. | * Můžeme takto zkoušet aplikaci jen na zařízeních a verzích Androidu, která máme fyzicky k dispozici. | ||
+ | |||
+ | |||
+ | == 2. Připojení k mobilu prostřednictvím ovladačů == | ||
+ | * Pokud máme k dispozici ovladače od výrobce mobilního zařízení (obvykle jdou stáhnout z webu výrobce), můžeme propojit Android Studio s mobilním zařízením. | ||
+ | * Aplikaci pak spouštíme přímo z Android Studia. | ||
+ | * Aplikace běží na mobilním zařízení, připojeném přes USB kabel. | ||
+ | * Informace o událostech, probíhajících v zařízení, se posílají do počítače a dají se zobrazit v Android Studiu či jiném vývojovém prostředí. | ||
; Výhody: | ; Výhody: | ||
− | * | + | * Skutečné ladění s minimálními nároky na výkon počítače (aplikace běží v mobilním zařízení). |
− | + | ||
* Aplikaci vidíme přímo na mobilním zařízení v reálné podobě. | * Aplikaci vidíme přímo na mobilním zařízení v reálné podobě. | ||
+ | ; Nevýhody: | ||
+ | * Je třeba do počítače instalovat ovladače zařízení. (Správcovské oprávnění, ovladače mohou kolidovat s dalšími programy v počítači,...) | ||
+ | * Ovladače jsou specifické pro konkrétního výrobce mobilních zařízení (nebo spíše pro konkrétní skupinu zařízení daného výrobce). | ||
+ | * V mobilním zařízení je třeba povolit (alespoň dočasně) vývojářský režim. | ||
+ | * Můžeme takto zkoušet aplikaci jen na zařízeních a verzích Androidu, která máme fyzicky k dispozici. | ||
− | |||
== 3. Virtualizace zařízení AVD == | == 3. Virtualizace zařízení AVD == | ||
+ | * V tomto případě využijeme vestavěných možností Android SDK a budeme aplikace spouštět na virtuálním zařízení, emulovaném přímo v našem počítači. | ||
+ | * Pro zrychlení práce lze využít několik variant zrychlení. | ||
=== 3.1 S podporou HAXM ovladačů === | === 3.1 S podporou HAXM ovladačů === | ||
− | * | + | * Pro emulaci mobilní platformy Intel Atom lze využít hardwarové podpory virtualizace, kterou nabízí moderní procesory. |
+ | * Abychom byli přesnější, aplikace pro platformu Intel Atom lze ladit POUZE tímto způsobem! | ||
+ | |||
+ | ; Výhody: | ||
+ | * Výrazné zrychlení startování i běhu laděných aplikací! | ||
+ | ; Nevýhody: | ||
+ | * Lze použít pouze pro ladění na platformě Intel Atom, nikoli pro platformu ARM. | ||
+ | * Vyžaduje instalaci ovladače Intel HAXM. (Volně dostupný ze stránek Intelu nebo v rámci instalace Android SDK. | ||
+ | * Běží pouze na procesorech značky Intel (nikoli na AMD). | ||
+ | |||
+ | <div class="Varovani"> | ||
+ | Tento způsob zrychlení lze použít pouze na procesorech značky Intel! | ||
+ | |||
+ | '''NELZE použít na procesorech AMD!!!''' | ||
+ | </div> | ||
=== 3.2 S využitím funkcí grafické karty === | === 3.2 S využitím funkcí grafické karty === | ||
− | === 3.3 | + | === 3.3 Ukládání obrazů (snapshot) aktuálního stavu stroje === |
+ | * Tato možnost zrychlí start emulovaného mobilního zařízení. (Cca 2/3 standardního času, podle konkrétní platformy a rychlosti počítače.) | ||
+ | * Cenou za toto zrychlení jsou vyšší nároky na obsazené místo na disku (ukládá se i aktuální obsah operační paměti zařízení, aby se příště nemuselo bootovat). | ||
+ | * Je třeba zvolit v nastavení Android Virtual Device (AVD). | ||
+ | * Nelze kombinovat s akcelerací pomocí využití grafické karty. | ||
== 4. Cloudové nástroje == | == 4. Cloudové nástroje == |
Aktuální verze z 9. 3. 2016, 15:18
Šest programátorských zákonů: 1. V každém programu je alespoň jedna chyba. 2. Každý program lze zkrátit alespoň o jeden řádek. 3. Nejjednodušší chyby se nejhůře hledají. 4. Každou opravou se do programu zanese nová chyba. 5. Když už se zdá, že program je v pořádku, určitě jsme něco přehlédli. 6. Programátor dělá, co umí. Počítač si dělá, co chce.
Obsah |
Jak zkoušet/ladit aplikace pro Android?
Při vývoji aplikací pro Android je ladění náročnější v tom, že aplikace nelze spustit přímo na počítači, na kterém vývojář pracuje. Tedy alespoň do doby, než někdo napíše dobré vývojové prostředí běžící na Androidu... ;)
1. Spuštění *.apk na mobilu
- Nejjednodušší metoda, ale neumožňuje ladění v pravém slova smyslu.
- Ve vývojovém prostředí přeložíme aplikaci. Balíček
*.apk
pak zkopírujeme do mobilního zařízení a spustíme. Zkoušíme chování aplikace.
- Výhody
- Není třeba na počítači ani v mobilním zařízení nic instalovat.
- Stačí soubor
*.apk
zkopírovat do cloudového úložiště. - Aplikaci vidíme přímo na mobilním zařízení v reálné podobě.
- Nevýhody
- Vyžaduje povolit (alespoň dočasně) spouštění aplikací ze zdrojů jiných než Google Play.
- Pokud aplikace havaruje, nedostaneme žádnou informaci o důvodů pádu.
- Nemáme možnost sledovat, co se děje uvnitř aplikace.
- Můžeme takto zkoušet aplikaci jen na zařízeních a verzích Androidu, která máme fyzicky k dispozici.
2. Připojení k mobilu prostřednictvím ovladačů
- Pokud máme k dispozici ovladače od výrobce mobilního zařízení (obvykle jdou stáhnout z webu výrobce), můžeme propojit Android Studio s mobilním zařízením.
- Aplikaci pak spouštíme přímo z Android Studia.
- Aplikace běží na mobilním zařízení, připojeném přes USB kabel.
- Informace o událostech, probíhajících v zařízení, se posílají do počítače a dají se zobrazit v Android Studiu či jiném vývojovém prostředí.
- Výhody
- Skutečné ladění s minimálními nároky na výkon počítače (aplikace běží v mobilním zařízení).
- Aplikaci vidíme přímo na mobilním zařízení v reálné podobě.
- Nevýhody
- Je třeba do počítače instalovat ovladače zařízení. (Správcovské oprávnění, ovladače mohou kolidovat s dalšími programy v počítači,...)
- Ovladače jsou specifické pro konkrétního výrobce mobilních zařízení (nebo spíše pro konkrétní skupinu zařízení daného výrobce).
- V mobilním zařízení je třeba povolit (alespoň dočasně) vývojářský režim.
- Můžeme takto zkoušet aplikaci jen na zařízeních a verzích Androidu, která máme fyzicky k dispozici.
3. Virtualizace zařízení AVD
- V tomto případě využijeme vestavěných možností Android SDK a budeme aplikace spouštět na virtuálním zařízení, emulovaném přímo v našem počítači.
- Pro zrychlení práce lze využít několik variant zrychlení.
3.1 S podporou HAXM ovladačů
- Pro emulaci mobilní platformy Intel Atom lze využít hardwarové podpory virtualizace, kterou nabízí moderní procesory.
- Abychom byli přesnější, aplikace pro platformu Intel Atom lze ladit POUZE tímto způsobem!
- Výhody
- Výrazné zrychlení startování i běhu laděných aplikací!
- Nevýhody
- Lze použít pouze pro ladění na platformě Intel Atom, nikoli pro platformu ARM.
- Vyžaduje instalaci ovladače Intel HAXM. (Volně dostupný ze stránek Intelu nebo v rámci instalace Android SDK.
- Běží pouze na procesorech značky Intel (nikoli na AMD).
Tento způsob zrychlení lze použít pouze na procesorech značky Intel!
NELZE použít na procesorech AMD!!!
3.2 S využitím funkcí grafické karty
3.3 Ukládání obrazů (snapshot) aktuálního stavu stroje
- Tato možnost zrychlí start emulovaného mobilního zařízení. (Cca 2/3 standardního času, podle konkrétní platformy a rychlosti počítače.)
- Cenou za toto zrychlení jsou vyšší nároky na obsazené místo na disku (ukládá se i aktuální obsah operační paměti zařízení, aby se příště nemuselo bootovat).
- Je třeba zvolit v nastavení Android Virtual Device (AVD).
- Nelze kombinovat s akcelerací pomocí využití grafické karty.