Gebruik de optie -s
VOORDAT de opdracht wordt gegeven om het apparaat op te geven, bijvoorbeeld:
adb -s 7f1c864e shell
Zie ook http://developer.android.com/tools/help/ adb.html#directingcommands
Antwoord 1, autoriteit 100%
adb -d shell
(of adb -e shell
).
Deze opdracht zal u in de meeste gevallen helpen, als u te lui bent om de volledige ID te typen.
Van http://developer.android.com/tools/help/adb .html#commandsummary:
-d
– Stuur een adb-opdracht naar het enige aangesloten USB apparaat. Retourneert een fout wanneer er meer dan één USB-apparaat is aangesloten.
-e
– Stuur een adb-opdracht naar de enige actieve emulator. Retourneert een fout wanneer er meer dan één emulator actief is.
Antwoord 2, autoriteit 13%
Een ander alternatief zou zijn om de omgevingsvariabele ANDROID_SERIAL in te stellen op het relevante serienummer, hier ervan uitgaande dat u Windows gebruikt:
set ANDROID_SERIAL=7f1c864e
echo %ANDROID_SERIAL%
"7f1c864e"
Dan kunt u zonder problemen adb.exe shell
gebruiken.
Antwoord 3, autoriteit 12%
Ik vond deze vraag na het zien van de ‘meer dan één apparaat’-fout, met 2 offline telefoons met het volgende:
C:\Program Files (x86)\Android\android-sdk\android-tools>adb devices
List of devices attached
SH436WM01785 offline
SH436WM01785 offline
SH436WM01785 sideload
Als je maar één apparaat hebt aangesloten, voer je de volgende opdrachten uit om de offline verbindingen te verwijderen:
adb kill-server
adb devices
Antwoord 4, autoriteit 5%
Een APK installeren op een van uw emulators:
Koop eerst de lijst met apparaten:
-> adb devices
List of devices attached
25sdfsfb3801745eg device
emulator-0954 device
Installeer vervolgens de apk op uw emulator met de vlag -s
:
-> adb -s "25sdfsfb3801745eg" install "C:\Users\joel.joel\Downloads\release.apk"
Performing Streamed Install
Success
Ps.: de volgorde is hier van belang, dus -s <id>
moet vóór de opdracht install
komen, anders werkt het niet.
Ik hoop dat dit iemand helpt!
Antwoord 5, autoriteit 2%
Deze gistzal het meeste werk voor je doen en een menu tonen als er meerdere zijn aangesloten apparaten:
$ adb $(android-select-device) shell
1) 02783201431feeee device 3) emulator-5554
2) 3832380FA5F30000 device 4) emulator-5556
Select the device to use, <Q> to quit:
Om typen te voorkomen, kunt u gewoon een alias maken die de apparaatselectie bevat, zoals uitgelegd hier.
Antwoord 6, autoriteit 2%
Gebruiker @janot
heeft dit hierboven al genoemd, maar het kostte me wat tijd om de beste oplossing te filteren.
Er zijn twee brede gebruiksscenario’s:
1) Er zijn 2 hardware aangesloten, de eerste is de emulator en de andere is een apparaat.
Oplossing: adb -e shell....whatever-command
voor emulator en adb -d shell....whatever-command
voor apparaat .
2) n aantal apparaten is aangesloten (alle emulators of telefoons/tablets) via USB/ADB-WiFi:
Oplossing:
Stap 1) voer adb devices
uit. Dit geeft u een lijst met apparaten die momenteel zijn aangesloten (via USB of ADBoverWiFI)
Step2) voer nu adb -s <device-id/IP-address> shell....whatever-command
hoeveel apparaten je ook hebt.
Voorbeeld
om app-gegevens te wissen op een apparaat dat is aangesloten op wifi ADB, zou ik uitvoeren:
adb -s 172.16.34.89:5555 shell pm clear com.package-id
om app-gegevens te wissen die zijn aangesloten op mijn USB-apparaat, zou ik het volgende uitvoeren:
adb -s 5210d21be2a5643d shell pm clear com.package-id
Antwoord 7, autoriteit 2%
De beste manier om shell op een bepaald apparaat uit te voeren, is door het volgende te gebruiken:
adb -s << emulator UDID >> shell
For Example:
adb -s emulator-5554 shell
Antwoord 8
Voor Windows is hier een snel 1 liner-voorbeeld van hoe een bestand te installeren..op meerdere apparaten
FOR /F "skip=1" %x IN ('adb devices') DO start adb -s %x install -r myandroidapp.apk
Als u van plan over het opnemen van deze in een batch-bestand, vervangt% x met %% x, zoals hieronder
FOR /F "skip=1" %%x IN ('adb devices') DO start adb -s %%x install -r myandroidapp.apk
Antwoord 9
Running adb opdrachten op alle aangesloten apparaten
Een bash (adb +)
adb devices | while read line
do
if [ ! "$line" = "" ] && [ `echo $line | awk '{print $2}'` = "device" ]
then
device=`echo $line | awk '{print $1}'`
echo "$device $@ ..."
adb -s $device $@
fi
gedaan
gebruik het met
adb + // + command
Antwoord 10
Een Bash (tools.sh) om een seriële van apparaten (of emulator) te selecteren:
clear;
echo "====================================================================================================";
echo " ADB DEVICES";
echo "====================================================================================================";
echo "";
adb_devices=( $(adb devices | grep -v devices | grep device | cut -f 1)#$(adb devices | grep -v devices | grep device | cut -f 2) );
if [ $((${#adb_devices[@]})) -eq "1" ] && [ "${adb_devices[0]}" == "#" ]
then
echo "No device found";
echo "";
echo "====================================================================================================";
device=""
// Call Main Menu function fxMenu;
else
read -p "$(
f=0
for dev in "${adb_devices[@]}"; do
nm="$(echo ${dev} | cut -f1 -d#)";
tp="$(echo ${dev} | cut -f2 -d#)";
echo " $((++f)). ${nm} [${tp}]";
done
echo "";
echo " 0. Quit"
echo "";
echo "====================================================================================================";
echo "";
echo ' Please select a device: '
)" selection
error="You think it's over just because I am dead. It's not over. The games have just begun.";
// Call Validation Numbers fxValidationNumberMenu ${#adb_devices[@]} ${selection} "${error}"
case "${selection}" in
0)
// Call Main Menu function fxMenu;
*)
device="$(echo ${adb_devices[$((selection-1))]} | cut -f1 -d#)";
// Call Main Menu function fxMenu;
esac
fi
Toen in een andere optie kunt adb -s
(algemene optie -s apparaat te gebruiken met opgegeven serienummer dat overschrijft $ ANDROID_SERIAL):
adb -s ${device} <command>
Ik testte deze code op MacOS terminal, maar ik denk dat het kan worden gebruikt op de ramen aan de overkant van Git Bash Terminal.
Denk er ook aan configure omgevingsfactoren en Android SDK paden op .bash_profile
file:
export ANDROID_HOME="/usr/local/opt/android-sdk/"
export PATH="$ANDROID_HOME/platform-tools:$PATH"
export PATH="$ANDROID_HOME/tools:$PATH"
Antwoord 11
Hier is een shell script maakte ik voor mezelf:
#! /bin/sh
for device in `adb devices | awk '{print $1}'`; do
if [ ! "$device" = "" ] && [ ! "$device" = "List" ]
then
echo " "
echo "adb -s $device $@"
echo "------------------------------------------------------"
adb -s $device $@
fi
done