Android: Ladění aplikace
Z MiS
				
				
				
				
																
				
				
								
				
Š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 
*.apkpak 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 
*.apkzkopí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.