$ adb --help
...
-s SERIAL use device with given serial (overrides $ANDROID_SERIAL)
...
$ adb devices List of devices attached emulator-5554 device 7f1c864e device
...
$ adb shell -s 7f1c864e error: more than one device and emulator
?
Utilisez l' -s
option AVANT la commande pour spécifier le périphérique, par exemple:
adb -s 7f1c864e shell
Voir également http://developer.android.com/tools/help/adb.html#directingcommands
adb -s 192.168.56.101:5555 shell
adb -e shell
ouadb emu <command>
. Ils échoueront s'il y a plus d'un émulateur en cours et vous devrez vous replier sur-s
-s
option avantshell
. C'est une très mauvaise expérience utilisateur que vous ne pouvez pas faire l'inverse ...adb -d shell
(ouadb -e shell
).Cette commande vous aidera dans la plupart des cas, si vous êtes trop paresseux pour taper l'ID complet.
Depuis http://developer.android.com/tools/help/adb.html#commandsummary :
la source
-d
c'est pour "appareil" et-e
pour "émulateur" . Et si vous l'avez déjà compris, donnez-vous une tape dans le dos. ;)Une autre alternative serait de définir la variable d'environnement ANDROID_SERIAL sur la série appropriée, en supposant ici que vous utilisez Windows:
Ensuite, vous pouvez utiliser
adb.exe shell
sans aucun problème.la source
set ANDROID_SERIAL=7f1c864e
, à savoir. sans citations.export ANDROID_SERIAL=7f1c864e
.J'ai trouvé cette question après avoir vu l'erreur «plus d'un appareil», avec 2 téléphones hors ligne montrant:
Si vous n'avez qu'un seul appareil connecté, exécutez les commandes suivantes pour supprimer les connexions hors ligne:
la source
adb kill-server
résout le problème avec les émulateurs hors ligneCet essentiel fera la plupart du travail pour vous en affichant un menu lorsque plusieurs appareils sont connectés:
Pour éviter de taper, vous pouvez simplement créer un alias qui incluait la sélection de périphérique comme expliqué ici .
la source
L'utilisateur l'
@janot
a déjà mentionné ci-dessus, mais cela m'a pris un certain temps pour filtrer la meilleure solution.Il existe deux cas d'utilisation généraux:
1) 2 matériels sont connectés, le premier est l'émulateur et l'autre est un périphérique.
Solution :
adb -e shell....whatever-command
pour émulateur etadb -d shell....whatever-command
pour appareil.2) n nombre d'appareils sont connectés (tous les émulateurs ou téléphones / tablettes) via USB / ADB-WiFi:
Solution : Étape 1) exécutez
adb devices
Cela vous donnera la liste des appareils actuellement connectés (via USB ou ADBoverWiFI) Étape 2)exécutez maintenant,
adb -s <device-id/IP-address> shell....whatever-command
peu importe comment de nombreux appareils dont vous disposez.Exemple
pour effacer les données d'application sur un appareil connecté sur wifi ADB j'exécuterais:
adb -s 172.16.34.89:5555 shell pm clear com.package-id
pour effacer les données d'application connectées sur mon appareil connecté USB, j'exécuterais:
adb -s 5210d21be2a5643d shell pm clear com.package-id
la source
Pour installer un apk sur l'un de vos émulateurs:
Obtenez d'abord la liste des appareils:
Installez ensuite l'apk sur votre émulateur avec le
-s
drapeau:J'espère que cela aide quelqu'un!
la source
Exécution de commandes adb sur tous les appareils connectés
Créer un bash (adb +)
l'utiliser avec
Commande adb + // +
la source
Pour Windows, voici un exemple rapide 1 de comment installer un fichier ... sur plusieurs appareils
Si vous prévoyez de l'inclure dans un fichier de commandes, remplacez% x par %% x, comme ci-dessous
la source
Créez un Bash (tools.sh) pour sélectionner une série à partir de périphériques (ou émulateur):
Ensuite, dans une autre option peut utiliser
adb -s
(l'option globale -s utilise un périphérique avec un numéro de série donné qui remplace $ ANDROID_SERIAL):J'ai testé ce code sur le terminal MacOS, mais je pense qu'il peut être utilisé sur les fenêtres de Git Bash Terminal.
N'oubliez pas également de configurer les variables d'environnement et les chemins du SDK Android dans le
.bash_profile
fichier:la source
fxMenu
etfxValidatonNumberMenu
sont juste pour référence. Je l'avais commenté pour éviter les codes d'erreur. Vous pouvez voir une implémentation complète sur mon référentiel: github.com/equiman/hardhatmac/blob/master/tools.shLa meilleure façon d'exécuter le shell sur un appareil particulier est d'utiliser:
Fonctionne à 100%
S'il vous plaît donnez-lui un coup
la source
Voici un script shell que je me suis fait:
la source