Možná o tom ani nevíte, ale ADB (Android Debug Bridge) je klient-server rozhraní přes které komunikuje počítač s Android zařízením při vývoji. Jako výchozí stav je komunikace přes USB, prostě kabelem mezi počítačem a tabletem. ADB ale podporuje i komunikaci přes TCP (tu používá emulátor).
No a, ADB přes TCP jede zapnout i na fyzickém HW!
Jako nejjednodušší mi přišel následující postup (přečtěte si tento návod až do konce než začnete experimentovat!):
1) Připojte tablet standardně přes USB
2) Otevřete si konzoli s cestou <sdk>/platform-tools (v tomto adresáři se nachází konzolový adb client)
3) Ujistěte se, že máte k PC připojeno jen jedno zařízení (zabijte spuštěný emulátor). Pokud spustíte:
C:\android\android-sdk\platform-tools>adb devices
vypíše vám jen jedno zařízení (tento krok sice není nutný, ale ušetří vám opisování sériového čísla zařízení v dalších krocích)
4) Nyní donutíme tablet poslouchat na TCP portu (třeba 5555):
C:\java\Android\android-sdk\platform-tools>adb tcpip 5555
restarting in TCP mode port: 5555
Právě jste restartovali ADBD démon na tabletu a přišli o připojení přes USB. Musíte se spojit přes TCP. V zásadě jsou 2 možnosti.
5) Pokud jste s PC i tabletem v nějaké rozumné síti tzn., budete se schopni z PC připojit k tabletu (budete znát IP adresu tabletu) a bude fungovat komunikace na portu 5555. Stačí ADB říct s kým má navázat komunikaci (10.0.0.2 je adresa, kterou dostal tablet od wifi routeru, který mám doma):
C:\android\android-sdk\platform-tools>adb connect 10.0.0.2:5555
connected to 10.0.0.2:5555
Od této chvíle vidíte zařízení úplně stejně jako, kdyby bylo připojeno přes USB, můžete na něm debugovat a dělat ostatní zajímavý věci…
Nejsem si jistý jestli eduroam ve škole je takto rozumnou sítí, takže je tu druhá možnost:
Pustit si v tabletu tethering přes Wifi. Tím se
tablet začne chovat jako Wifi AP, na které se připojte. Nyní stačí zjistit jeho
IP adresu (ve Windows např. pomocí ipconfig najít adresu výchozí brány) a připojit se na ni:
C:\android\android-sdk\platform-tools>adb connect
192.168.43.1:5555
connected to 192.168.43.1:5555
7) Až se budete chtít opět připojit přes USB, spusťte adb s parametrem usb (musíte být připojeni k zařízení přes TCP):
C:\java\Android\android-sdk\platform-tools>adb usb
restarting in USB mode
Pár tipů:
Co bezpečnost?
ADB není nijak zabezpečené, takže pokud budete mít povolené debugovaní přes TCP ve veřejné síti, kdokoli se na váš tablet může připojit a dělat tam věci, které by se vám asi nelíbili ;)
Jak zjistit mojí IP
Podržte prst v nastavení Wifi na názvu sítě, ke které jste připojeni. Popř. v Nastavení/Informace o tabletu/Stav.
Jak se vrátit k USB bez připojení přes TCP
U mého Asus EEE Pad je toto nastavení po vypnutí/zapnutí. Jinou cestu jsem nenašel. Změna tohoto nastavení přímo na androidu zřejmě vyžaduje restart ADBD démona a na to potřebujete root práva… Pokud se vám podaří najít jinou metodu, určitě se o ni podělte. Mně vyhovuje tento postup, takže se v tom už dál pitvat nebudu ;)
--
Hezký víkend,
Adam