web-dev-qa-db-fra.com

Comment configurer ADB pour le développement de machines à distance et le déploiement de périphériques locaux

Mon scénario est le suivant: je fais du télétravail depuis mon domicile et je me connecte à ma machine de travail via Windows Remote Desktop. J'utilise Eclipse comme environnement de développement pour les applications Android sur mon ordinateur de travail.

En utilisant ADB, j'aimerais pouvoir déployer des applications de mon ordinateur de travail vers un appareil sur mon réseau domestique, pour les scénarios où l'émulateur ne rend pas justice à l'application.

J'ai trouvé cet article, qui traite d'un scénario très similaire, à l'exception du déploiement sur un émulateur fonctionnant sur un PC local, au lieu de se déployer sur un appareil local:

http://www.41post.com/5003/programming/Android-adb-remote-emulator-access

J'essaie de suivre les mêmes étapes, mais je trouve comment cibler un appareil local sur mon réseau WiFi domestique et attaché à mon PC domestique local, au lieu de l'émulateur local.

En ce moment, j'ai le PC distant configuré pour essayer de me connecter à mon IP de routeur public sur le port 5585 - mais dans mon routeur, à quelle IP/port dois-je transmettre ceci pour me connecter au périphérique local?

Dans l'exemple utilisant l'émulateur, ils transmettent à l'adresse du PC local où l'émulateur s'exécute et le port 5555, et adb ne s'exécute pas sur le PC local. J'ai configuré mon routeur pour transférer vers l'IP de mon appareil, avec l'appareil sur le WiFi, ainsi que sur l'IP de mon PC local où l'appareil est attaché.

Cependant, dans les deux scénarios, lorsque j'essaie adb connect <routerIP>:5585 sur mon PC distant, cela me donne une erreur unable to connect to <routerIP>:5585:5585. J'obtiens la même réponse lorsque j'essaie de transmettre/écouter d'autres ports. Je ne reçois aucune erreur de sécurité dans le journal du routeur, il semble donc que la redirection de port fonctionne.

Questions:

  • À quel numéro IP/port local dois-je transmettre lors de la configuration de la redirection de port sur mon réseau local pour se connecter au périphérique local à l'aide de l'instance adb distante?
  • Dois-je cibler l'IP du PC local sur lequel le périphérique est attaché ou l'IP du périphérique local?
  • Si je cible l'IP du périphérique local, vers quel numéro de port dois-je transmettre?
  • Dois-je exécuter adb sur mon PC local?
36
Sean Barbeau

J'avais une situation similaire. Je travaille sur un bureau distant pour le développement mais mon appareil Android est connecté à mon ordinateur portable local. Je voulais pouvoir utiliser adb et le plug-in Android Android) Eclipse sur le bureau distant et connectez-vous à l'appareil connecté à mon ordinateur portable. Après avoir recherché sur Internet et n'ayant rien trouvé de vraiment utile, j'ai décidé d'écrire un port forwarder qui ferait l'affaire. Vous pouvez le trouver ici . J'espère que cela sera également utile à d'autres personnes.

41
Guy Chauliac

Début Android 4.3 vous pouvez:

  1. Faire écouter le serveur adb sur toutes les interfaces. Vous avez deux options:
    • Make gListen = 1 et recompiler adb (Je l'ai compilé sur une machine Linux-x64 pour vous et je l'ai mis ici )
    • Démarrez le serveur adb avec -a paramètre: adb -a -P 5037 fork-server server&
  2. Utilisez adb sur votre machine distante avec un paramètre supplémentaire, par exemple adb -H <remote_Host> Shell
22
Roman Saveljev

Vous pouvez résoudre le problème par la redirection de port.

  • Téléchargez l'application Secure Shell depuis la boutique d'applications Chrome Chrome
  • Connectez-vous à votre machine (configuration étape par étape)
  • À cet égard, désactivez le serveur adb: adb kill-server
  • Créez une nouvelle connexion de redirection de port (identique à une connexion régulière, mais définissez le champ Arguments SSH sur: -N -R 5037: localhost: 5037)
  • Sur votre ordinateur portable, ouvrez un terminal et activez le serveur adb: adb start-server
4
Uma sankar pradhan

Ma situation nécessitait l'utilisation d'un VM qui se trouve sur un réseau différent, mais dans lequel je rmd (une machine virtuelle Azure). VM et mon ordinateur portable local exécutent tous les deux Windows 10. Premièrement, j'ai dû installer USB Redirector RDP Edition sur ma machine locale (coûte 80 $, mais il pourrait y avoir des alternatives gratuites), puis installez Google Android Pilote USB sur le VM et niversal Adb Driver sur la VM. Je peux maintenant charger une Android Studio App le projet dans Android Studio sur la machine virtuelle, connectez un appareil Android sur mon ordinateur portable et déboguez l'application sur l'appareil.

1
Bugmonster

Il existe probablement une solution plus simple, à condition que l'appareil, la machine locale et distante appartiennent au même réseau. Disons que votre appareil possède une certaine IP sur le réseau et disons que vous décidez d'utiliser votre PORT préféré: eh bien, vous pouvez effectuer les étapes suivantes.

Sur la machine sur laquelle l'appareil est branché, exécutez:

adb devices

adb tcpip PORT

Sur la machine distante, vous devez désactiver "Découvrir les périphériques USB", "Découvrir les cibles réseau" et "Transfert de port", puis exécuter:

adb connect IP:PORT

et vous êtes prêt à déboguer sur une machine distante.

J'espère que cela aidera quelqu'un ...

Cordialement

0
Pakkes