Entwickeln

ADB mit Meta Quest verwenden

Android Debug Bridge (ADB) ist ein Befehlszeilentool im Android SDK, welches als Haupttool für die Kommunikation mit Meta Quest-Headsets in allen Phasen der Entwicklung verwendet wird. ADB ist ein vielseitiges Tool, das zum Installieren von Apps und zum Übermitteln anderer wichtiger Befehle vom Computer zum Headset benötigt wird.
Dieser Leitfaden beschreibt häufig verwendete Aktionen, aber du solltest dich auch mit der offiziellen Android-Dokumentation vertraut machen.
Gib nach der Installation von ADB Folgendes ein, um eine Liste der verfügbaren Befehle und Optionen abzurufen:
adb help

Mit ADB eine Verbindung zu einem Gerät herstellen

In der OS-Shell kannst du entweder direkt über USB oder über TCP/IP über eine WLAN-Verbindung eine Verbindung zu einem Android-Gerät herstellen und mit diesem kommunizieren.
Um ein Gerät über USB zu verbinden, schließe es über ein kompatibles USB-Kabel an den PC an. Sobald es verbunden ist, öffne eine OS-Shell und gib Folgendes ein:
adb devices
Wenn das Gerät ordnungsgemäß verbunden ist, zeigt ADB die Geräte-ID-Liste an, die in etwa wie folgt aussieht:
List of devices attached
    ce0551e7                device
Du kannst ADB nicht verwenden, wenn kein Gerät erkannt wurde. Sollte dein Gerät nicht aufgeführt sein, hast du wahrscheinlich nicht den richtigen USB-Treiber installiert (siehe Oculus ADB-Treiber). Vergewissere dich zudem, dass der Entwicklungsmodus für dein Gerät in der mobilen Meta Horizon-App aktiviert ist. Manchmal kann ein anderes USB-Kabel oder ein anderer Port Verbindungsprobleme lösen.

ADB über WLAN verbinden

Die Verbindung eines Geräts über USB ist in der Regel schneller als eine TCP/IP-Verbindung. In manchen Fällen kann jedoch eine TCP/IP-Verbindung unverzichtbar sein.
Stelle für die Verbindung über TCP/IP zunächst sicher, dass das Gerät bereits über USB verbunden ist, und verwende anschließend diesen Befehl, um die IP-Adresse des Geräts zu bestimmen:
adb shell ip route
Die Ausgabe sollte in etwa so aussehen:
10.0.30.0/19 dev wlan0  proto kernel  scope link  src 10.0.32.101
Die IP-Adresse des Geräts steht hinter src. Führe unter Verwendung der IP-Adresse und des Ports (in der Regel 5555) die folgenden Befehle aus:
adb tcpip <port>
adb connect <ipaddress>:<port>
Zum Beispiel:
> adb tcpip 5555
    restarting in TCP mode port: 5555
> adb connect 10.0.32.101:5555
    connected to 10.0.32.101:5555
Das Gerät kann nun vom USB-Port getrennt werden. Solange adb devices nur ein Gerät zeigt, werden alle ADB-Befehle für das Gerät über WLAN ausgeführt.
Damit die WLAN-Verbindung nicht mehr verwendet wird, führe den folgenden ADB-Befehl in der OS-Shell aus:
adb disconnect

ADB für die Installation von Apps verwenden

Führe den folgenden Befehl aus, um eine APK auf deinem Headset zu installieren:
adb install <APK_PATH>
Zum Beispiel unter Windows:
adb install C:\Dev\Android\MyProject\VrApp.apk
Unter macOS:
adb install ~/Dev/Android/MyProject/VrApp.apk
Verwende die Option -r, um eine vorhandene APK mit demselben Namen auf dem Zielgerät zu überschreiben:
adb install -r <APK_PATH>
Hinweis: Beim Installieren von Apps mit adb install wird die normale Quest-Installationsroute umgangen. Cloud-Backup erkennt Apps, die auf diese Weise installiert wurden, nicht und führt keine Backups für sie durch.
Weitere Informationen findest du im Abschnitt App installieren des Android-Leitfadens für Android Debug Bridge.

Verbindungsprobleme beheben

Die nachfolgenden Abschnitte enthalten mögliche Lösungen für häufige Verbindungsprobleme mit ADB.

Computer erkennt das Gerät nicht

Es kann mehrere Gründe dafür geben, dass dein Computer das Headset nicht erkennt. Hier ein paar Vorschläge:
  • Stelle sicher, dass der Entwicklungsmodus in der Meta Horizon-App auf deinem Mobilgerät aktiviert ist.
  • Prüfe, ob das Problem durch ein fehlerhaftes USB-Kabel verursacht wird. Verbinde das Gerät über ein zweites USB-Kabel. Wenn du kein zweites USB-Kabel hast, verbinde das Gerät mit einem anderen Android-Gerät, um zu prüfen, ob das Problem auf das USB-Kabel zurückzuführen ist.
  • Stelle sicher, dass dein Computer über alle notwendigen Berechtigungen verfügt, um auf dein Headset zuzugreifen. Normalerweise wird eine Aufforderung angezeigt, deinem Computer den Zugriff auf das Gerät zu gestatten, wenn du das Gerät über ein USB-Kabel mit dem Computer verbindest. Falls der Zugriff versehentlich verweigert wurde, trenne das USB-Kabel vom Gerät, führe einen Neustart des Geräts durch und verbinde das Kabel erneut. Wenn die Aufforderung zur Zugriffsberechtigung angezeigt wird, wähle Allow aus.
  • Auf einigen Geräten wird verhindert, dass das Gerät richtig erkannt wird, weil die Verbindung hergestellt wird, während eine VR-App läuft oder während ADB auf ein Gerät wartet. In diesen Fällen kannst du versuchen, die App zu beenden und ADB zu stoppen, indem du Strg-C verwendest, bevor du das Gerät erneut verbindest. Alternativ kannst du den ADB-Service mit dem folgenden Befehl stoppen. Danach wird er automatisch bei der Ausführung des nächsten ADB-Befehls neu gestartet:
adb kill-server

Terminal gibt den Fehler aus, dass der adb-Befehl nicht gefunden wurde

  • Prüfe zunächst, ob adb korrekt installiert ist. Gehe zum Ordner /Android/SDK/platform-tools/ und suche nach dem adb-Tool. Wenn das Tool fehlt, lade das Standalone-Paket Android SDK Platform-Tools herunter.
  • Überprüfe, ob du die Umgebungsvariablen korrekt eingestellt hast.
  • Du kannst adb aus dem Ordner /Android/SDK/platform-tools/ ausführen, indem du das Präfix ./ an den adb-Befehl anhängst. Anstelle von adb devices verwendest du zum Beispiel ./adb devices.

Es sind mehrere Geräte gleichzeitig verbunden

Häufig sind mehrere Geräte gleichzeitig angeschlossen, und dies ist oft hilfreich zum Debuggen von Client-/Server-Anwendungen. Beachte, dass ADB ein Gerät als zwei Geräte anzeigt, wenn das Gerät gleichzeitig über WLAN und USB verbunden ist. Wenn mehrere Geräte aufgeführt werden, muss an ADB kommuniziert werden, welches Gerät anvisiert werden soll. Dazu verwendest du den -s-Schalter. Berücksichtige zum Beispiel, ob adb devices Folgendes angezeigt hat:
List of devices attached
    ce0551e7                device
    10.0.32.101:5555        device
Bei den aufgeführten Geräte könnte es sich um zwei separate Geräte handeln oder um ein Gerät, das sowohl über WLAN als auch über USB verbunden ist (vielleicht, um den Akku aufzuladen). In diesem Fall müssen alle ADB-Befehle die folgende Form haben, bei der <device id (Geräte-ID) die Kennung ist, die von adb devices berichtet wird:
adb -s <device id> <command>
Um zum Beispiel einen logcat-Befehl an das Gerät auszugeben, das über TCP/IP verbunden ist:
adb -s 10.0.32.101:5555 logcat -c
Um den gleichen Befehl an das Gerät auszugeben, das über USB verbunden ist:
adb -s ce0551e7 logcat -c

Mehr dazu

In den folgenden Ressourcen findest du mehr Informationen über Entwicklungstools: