879 Stimmen

Wie kann ich eine Verbindung zu Android mit ADB über TCP herstellen?

Ich versuche, eine Anwendung auf einem Computer zu debuggen. Motorola Droid aber ich habe Schwierigkeiten, mich über USB mit dem Gerät zu verbinden. Mein Entwicklungsserver ist eine Windows 7 64-Bit-VM, die in Hyper-V und kann daher keine direkte USB-Verbindung im Gast oder vom Host herstellen.

Ich habe einige verschiedene USB-over-TCP-Lösungen installiert, aber die Verbindung scheint Probleme zu haben, da die ADB monitor meldet wiederholt "devicemonitor kann die Überwachung nicht starten". Gibt es eine Möglichkeit, eine direkte Verbindung zwischen dem Client auf dem Entwicklungscomputer und dem Daemon auf dem Gerät über das Netzwerk statt über die USB-Verbindung herzustellen, oder gibt es möglicherweise eine andere praktikable Option?

8voto

errordeveloper Punkte 6322

Um zwischen dem TCP- und dem USB-Modus mit nur einem Befehl zu wechseln, können Sie Folgendes hinzufügen /init.rc :

on property:service.adb.tcp.port=*
    restart adbd

on property:service.adb.tcp.enable=1
    setprop service.adb.tcp.port 5555

on property:service.adb.tcp.enable=0
    setprop service.adb.tcp.port -1

Und jetzt können Sie die Eigenschaft service.adb.tcp.enable um das Abhören von Port 5555 zu aktivieren oder zu deaktivieren. ausführen netstat um zu prüfen, ob es zuhört. Wie Sie sehen können, wird es auch ausgelöst, wenn Sie etwas ändern möchten service.adb.tcp.port manuell.

7voto

Eddy Punkte 3225

SCHRITT 1.

Vergewissern Sie sich beide Ihr adb-Host-Computer und Ihr Android-Gerät befinden sich im selben Wifi-Netzwerk.

SCHRITT 2.

Verbinden Sie das Android-Gerät über das USB-Kabel mit dem Computer. Sobald Sie das getan haben, wird Ihr Host-Computer Ihr Gerät erkennen und adb wird im USB-Modus auf dem Computer ausgeführt. Sie können die angeschlossenen Geräte überprüfen mit adb devices während Sie sicherstellen, dass adb im USB-Modus läuft, indem Sie Folgendes ausführen adb usb .

$ adb usb
restarting in USB mode
$ adb devices
List of devices attached
ZX1D63HX9R  device

SCHRITT 3.

Starten Sie adb im tcpip-Modus mit diesem Befehl neu:

$ adb tcpip 5556
restarting in TCP mode port: 5556

SCHRITT 4.

Ermitteln Sie die IP-Adresse des Android-Geräts. Es gibt mehrere Möglichkeiten, dies zu tun:

  • WEG: 1 Gehen Sie zu Einstellungen -> Über das Telefon/Tablet -> Status -> IP-Adresse.
  • WEG: 2 Rufen Sie die Liste der verfügbaren Wi-Fi-Netzwerke auf. Tippen Sie auf das Netzwerk, mit dem Sie verbunden sind, und erfahren Sie Ihre IP.
  • WEG: 3 Versuchen Sie $ adb shell netcfg .

Da Sie nun die IP-Adresse Ihres Geräts kennen, verbinden Sie Ihren adb-Host mit diesem.

$ adb connect 192.168.0.102:5556
already connected to 192.168.0.102:5556
$ adb devices
List of devices attached
ZX1D63HX9R  device
192.168.0.102:5556  device

SCHRITT 5.

Ziehen Sie das USB-Kabel ab und Sie sollten mit Ihrem Gerät verbunden sein. Wenn Sie es nicht in adb devices dann stellen Sie die Verbindung einfach mit dem Befehl aus dem vorherigen Schritt wieder her:

$ adb connect 192.168.0.102:5556
connected to 192.168.0.102:5556
$ adb devices
List of devices attached
192.168.0.102:5556  device

Entweder sind Sie jetzt startklar oder Sie müssen Ihren adb-Server beenden, indem Sie den Befehl adb kill-server und gehen Sie alle Schritte noch einmal durch.

Ich hoffe, das hilft!

Referenz:

6voto

Tom Taylor Punkte 2829

Das sind die Schritte, die ich befolgt habe und die bei mir funktioniert haben,

  1. adb shell ifconfig (holen Sie sich die IP-Adresse des Geräts von hier)

  2. adb tcpip 7777 (adb mit einem Port verbinden)

  3. adb connect "ipaddress":7777

5voto

Ron Punkte 51

Sie können auch die lokale SSH-Portweiterleitung verwenden. Dazu benötigen Sie aber immer noch ein USB-Kabel. Verbinden Sie Ihr Telefon über USB mit einem Computer (Host), auf dem ein sshd läuft. Starten Sie auf einem entfernten (Gast-)Rechner einen SSH-Client, der Portforwarding/Tunneling beherrscht. Beispiel:

plink -L 5037:localhost:5037 <host_IP_address>

Ich verwende diese Konstruktion, um mein Gerät mit einer virtuellen Maschine zu verbinden. Eltima USB zu Ethernet war nicht stabil genug (Timeouts während Debug).

SSH-Tunneling funktioniert kostenlos und ist zuverlässiger.

4voto

Ich finde die anderen Antworten verwirrend. Es ist viel einfacher, adbWireless zu verwenden:

http://ppareit.github.com/AdbConnect/

Installieren Sie einfach eine App auf Ihrem Telefon, um das Debugging über WLAN zu aktivieren, installieren Sie ein Eclipse-Plug-in und schon sind Sie fertig.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X