2014-12-02 9 views
6

Mam wymóg wdrożenia aplikacji testowej i wydania poleceń na urządzeniu podłączonym do komputera z adresem IP xxx.yyy.zz.pp w tej samej sieci.Jak mogę wdrożyć/uruchomić aplikację na zdalnie uruchomionym urządzeniu przy użyciu narzędzia adb (platformy Android)?

Przeczytałem przez http://developer.android.com/tools/help/adb.html#directingcommands, ale nie jestem w stanie uzyskać odpowiedzi.

Próbowałem używać platform-tools/adb connect <remote machine IP>, ale nie mam błędu I got unable to connect.

Czy istnieje sposób wdrażania i wykonywania poleceń na zdalnie uruchamianym emulatorze lub urządzeniu za pomocą narzędzia AdB?

Odpowiedz

8

Z adbtag wiki:

Android Debug Bridge (ADB) to wszechstronne narzędzie wiersza polecenia, które pozwala komunikować się z wystąpieniem emulatora lub podłączonego urządzenia z systemem Android . Jest to program typu klient-serwer, który obejmuje trzy komponenty:

  1. Klient, który działa na Twojej maszynie programistycznej. Możesz wywołać klienta z powłoki, wydając polecenie adb. Inne narzędzia Android, takie jak wtyczka ADT i DDMS, również tworzą klientów adb.
  2. Serwer, który działa jako proces w tle na komputerze programisty. Serwer zarządza komunikacją między klientem a demonem adb działającym na emulatorze lub urządzeniu.
  3. Demon, który działa jako proces w tle na każdym emulatorze lub instancji urządzenia.

adb connect komenda służy do podłączenia lokalnej server z daemon w sieci podłączone device. Ale to, co chcesz, to podłączyć lokalny client do zdalnego server. Aby to osiągnąć, potrzebujesz najnowszej wersji adb zainstalowanej na systemach lokalnych i zdalnych.

Zacznij wystąpienie adb server w systemie zdalnym (ten, który będzie podłączenie urządzeń do) z tym poleceniem:

adb -a -P <PORT_NUMBER> nodaemon server 

Teraz powinieneś być w stanie wysłać adb komendy do zdalnego prowadzenia server z lokalnego systemu przez poprzedzenie -H <REMOTE_IP> -P <PORT_NUMBER> do wszystkich adb poleceń:

adb -H <REMOTE_IP> -P <PORT_NUMBER> devices 

Alternatywnie ustawienie ANDROID_ADB_SERVER_ADDRESS=<REMOTE_IP> i ANDROID_ADB_SERVER_PORT=<PORT_NUMBER> Zmienne środowiskowe po stronie klienta pozwoliłyby uniknąć konieczności określania <REMOTE_IP> i <PORT_NUMBER> dla każdego polecenia adb.

Jeśli zostanie pominięty, wartość domyślna to na 5037.

+0

Dzięki temu pomogło. Możemy również tworzyć AVD na komputerze (lub podłączonych urządzeniach), a następnie używać narzędzi andriod-platform do łączenia się z AVD – amjad

1

A co z używaniem SSH do łączenia się z urządzeniem, na którym jest podłączone urządzenie i wydaniem polecenia ADB? Tak przynajmniej robimy w naszej firmie, gdzie mamy dziesiątki urządzeń, które kontrolujemy w ten sposób.

1

Może to pomoże:

Jego biblioteki Java, że ​​już kilka miesięcy temu opracowano specjalnie z tego zdalnego adb komendy w umyśle. Podstawową ideą było stworzenie warstwy abstrakcji, w której dostęp do urządzeń byłby możliwy na zdalnym komputerze, ponieważ był on lokalnie podłączony. Sprawdź:

https://github.com/lesavsoftware/rem-adb-exec

PS. i używa tunelu SSH, więc powinno być wystarczająco bezpieczne.