kic*_*hik 74
您可以使用adb devices
获取已连接设备的列表,然后adb -s DEVICE_SERIAL_NUM install...
针对列出的每个设备运行.
像(bash)这样的东西:
adb devices | tail -n +3 | cut -sf 1 -d " " | xargs -iX adb -s X install ...
Run Code Online (Sandbox Code Playgroud)
评论表明,对于较新版本,这可能会更好:
adb devices | tail -n +2 | cut -sf 1 | xargs -iX adb -s X install ...
Run Code Online (Sandbox Code Playgroud)
对于Mac OSX(未在Linux上测试):
adb devices | tail -n +2 | cut -sf 1 | xargs -I {} adb -s {} install ...
Run Code Online (Sandbox Code Playgroud)
Wor*_*att 12
其他答案非常有用,但并没有完全按照我的需要做.我想我会发布我的解决方案(一个shell脚本),以防它为其他读者提供更多的清晰度.它安装了多个apks和任何mp4
echo "Installatron"
for SERIAL in $(adb devices | tail -n +2 | cut -sf 1);
do
for APKLIST in $(ls *.apk);
do
echo "Installatroning $APKLIST on $SERIAL"
adb -s $SERIAL install $APKLIST
done
for MP4LIST in $(ls *.mp4);
do
echo "Installatroning $MP4LIST to $SERIAL"
adb -s $SERIAL push $MP4LIST sdcard/
done
done
echo "Installatron has left the building"
Run Code Online (Sandbox Code Playgroud)
感谢所有其他答案让我达到这一点.
Tom*_*Tom 10
这是一个根据kichik的回应量身定制的功能性单行命令(谢谢!):
adb设备| 尾巴-n +2 | cut -sf 1 | xargs -iX adb -s X install -r*.apk
但如果您碰巧使用Maven,它甚至更简单:
mvn android:deploy
小智 7
另一个简短的选择......我在这个页面上偶然发现了-s $SERIAL
必须在实际的adb命令之前来了!谢谢stackoverflow!
for SERIAL in $(adb devices | grep -v List | cut -f 1);
do `adb -s $SERIAL install -r /path/to/product.apk`;
done
Run Code Online (Sandbox Code Playgroud)
Dave Owens的通用解决方案在所有设备上运行任何命令:
for SERIAL in $(adb devices | grep -v List | cut -f 1);
do echo adb -s $SERIAL $@;
done
Run Code Online (Sandbox Code Playgroud)
把它放在像"adb_all"这样的脚本中,并使用与单个设备的adb相同的方式.
我发现的另一件好事是为每个命令分叉后台进程,并等待它们完成:
for SERIAL in $(adb devices | grep -v List | cut -f 1);
do adb -s $SERIAL $@ &
done
for job in `jobs -p`
do wait $job
done
Run Code Online (Sandbox Code Playgroud)
然后,您可以轻松创建脚本来安装应用程序并启动活动
./adb_all_fork install myApp.apk
./adb_all_fork shell am start -a android.intent.action.MAIN -n my.package.app/.MainActivity
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
48758 次 |
最近记录: |