Google+ Followers

pátek 22. listopadu 2013

Android Emulátor II

Přesun Emulátoru na jiný stroj

Jak jsem již zmiňoval ve svém minulém příspěvku, Android emulátor nesmí být provozován ve virtualizovaném prostředí. To že se Android Emulátor nesnáší s virtuálními stroji ale neznamená, že musíte nutně reinstalovat Delphi a všechny používané komponenty. Na "fyzický" stroj stačí přesunout pouze SDK Manager s Emulátorem a následně zprovoznit vzdálené ladění.


Co je PuTTY

PuTTY je nenáročný klient, který umožňuje připojit se ke vzdálenému počítači a předávat mu příkazy ke zpracování. Komunikace může probíhat prostřednictvím protokolů Telnet (Telecommunication Network), RLogin (Remote Login) nebo SSH(Secure Shell). Protože Delphi využívá toho, že Android simulátor lze plnohodnotně ovládat z příkazové řádky, můžeme za pomoci PuTTY "přesměrovat" tyto příkazy mimo virtuální stroj. Následující návod je převzat z
Delphi.org, kde byl ovšem jako vzdálený stroj použit Mac.



1)Konfigurace SSH Host

Na vzdálený stroj nainstalujte SSH server. Některé zdroje doporučují neinstalovat FreeSSHd jako službu, ale spouštět jej jako aplikaci. Po instalaci a spuštění se FreeSSHd zobrazí v oznamovací oblasti hlavního panelu:



Kliknutím pravým tlačítkem myši na ikonu FreeSSHd otevřeme dialog umožňující upravit jednotlivá nastavení. Nejprve v záložce "Tunneling" povolíme přesměrování (forwarding) lokálních portů:



Dále v záložce "Users" přidáme uživatelský účet, kterým se budeme k počítači přihlašovat:



Pokud byla instalace úspěšná, v záložce "Server status" by mělo být u SSH serveru zobrazeno zelené zatržení a informace, že SSH server běží:


2)Instalace Android SDK na vzdálený stroj

Stáhněte Android SDK a rozbalte jej do zvoleného adresáře. Nakonfigurujte a spusťte AVD (viz Anroid Emulátor I).


3)Instalace a konfigurace PuTTY

Nyní stáhneme aplikaci PuTTY. Protože se jedná o přímo spustitelný soubor, není jej třeba instalovat. Po spuštění je třeba provést konfiguraci připojení. V sekci "Session" vyplníme jméno nebo IP adresu vzdáleného stroje. Port pro SSH je typicky 22, nezapomeňte si ale ověřit, zda je zvolený port povolen v nastavení Vašeho firewallu.



V sekci "SSH ->Tunnels" je třeba nastavit přesměrování portů 5554 a 5555, které používá Android emulátor, z lokálního na vzdálený počítač:



Tato nastavení by měla být dostatečná a je tedy možné PuTTY spustit kliknutím na tlačítko "Open". Otevře se příkazový řádek s požadavkem na zadání uživatelského jména a hesla (viz nastavení FreeSSHd):



Po úspěšném přihlášení můžeme PuTTY minimalizovat. Okno však nezavírejte, připojení je aktivní jen po dobu, kdy je PuTTY spuštěné.


4)Otestování přístupu z Delphi

Na počítači (v mém případě ve virtuálním prostředí VMWare) spustíme Delphi a otevřeme nový nebo existující Fire Monkey Mobile Application projekt. Dále otevřeme příkazový řádek (CMD) a spustíme následující příkazy (viz ADB dokumentace):
  • adb kill-server
  • adb devices
Tip: ADB (Android Debug Bridge) se standardně nachází v adresáři "C:\Users\Public\Documents\RADStudio\12.0\PlatformSDKs\adt-bundle-windows-x86-20130522\sdk\platform-tools". CMD je tak nutné spustit z tohoto umístění, nebo uvedenou cestu přidat do PATH.



Nyní v Delphi v okně "Project Manager" klikneme pravým tlačítkem myši na uzel "Target" a aktualizujeme jej pomocí volby "Refresh". Pokud se vše podařilo, nabídka se rozšíří o zařízení emulované na vzdáleném stroji:



Z pohledu Delphi je práce se "vzdáleným" emulátorem zcela totožná, jako kdyby běžel na stejném stroji, jako vlastní vývojové prostředí.