一台PC连接多个Android手机,使用adb命令可以给这多台手机同时安装一个apk,这样可以实现吗?怎么写?

最好能做成.bat的,如果不行的话,能否用其他语言实现?
2024-10-22 16:47:31
推荐回答(5个)
回答1:

你是想用代码实现吗?
你可以启动多个线程,在线程里面进行安装,这样可以同时多个手机安装;
也可以写方法,在方法里面进行安装,这样是顺序安装;
主要方法是:调用 adb install + apk的绝对路径名;
如果有多部手机,调用adb -s + 手机编号(如果不知道怎么获取,请继续回复)+ install + apk绝对路径;
在代码里执行:Runtime.getRuntime().exec(
"adb -s " + devName + " install " + apkAddress);

private void installApkToMobile(String devName, String apkAddress)
{
Process process = null;
String buff = "";
try
{
process = Runtime.getRuntime().exec(
"adb -s " + devName + " install " + apkAddress);
BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream(), "utf-8"));
while ((buff = br.readLine()) != null)
{
print(buff);
if (buff.contains("INSTALL_FAILED_ALREADY_EXISTS"))
{
print(devName + "已安装");
}
}
br.close();
} catch (IOException e)
{
e.printStackTrace();
}
}

我现在也是在做这样的东西,欢迎继续讨论,相互学习。

回答2:

主要方法是:调用 adb install + apk的绝对路径名;
如果有多部手机,调用adb -s + 手机编号(如果不知道怎么获取,请继续回复)+ install + apk绝对路径;
在代码里执行:Runtime.getRuntime().exec(
"adb -s " + devName + " install " + apkAddress);

private void installApkToMobile(String devName, String apkAddress)
{
Process process = null;
String buff = "";
try
{
process = Runtime.getRuntime().exec(
"adb -s " + devName + " install " + apkAddress);
BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream(), "utf-8"));
while ((buff = br.readLine()) != null)
{
print(buff);
if (buff.contains("INSTALL_FAILED_ALREADY_EXISTS"))
{
print(devName + "已安装");
}
}
br.close();
} catch (IOException e)
{
e.printStackTrace();
}
}

回答3:

写了一个shell脚本,应该能完成你的要求,顺序执行。

#!/bin/bash
array=($(adb devices | grep ".device$"))
i=0
length=${#array[@]}
while [ "$i" -lt "$length" ];do
if
((i%2!=0))
then
unset array[i]
fi
((i++))
done

((length++))
for var in "${array[@]}"
do
#你要执行的adb 操作,例如
adb -s $var install apk绝对路径

done

回答4:

-s - directs command to the device or emulator with
the given

这是adb命令的一个参数,可以用这个参数指定手机啊
adb -s id1 push myapk /system/app
adb -s id2 push myapk /system/app

../将这些写道脚本里执行即可

用adb devices 查询手机的iD

回答5:

你直接下一个Total Control,用电脑群控手机不就得了,还可以在这个TC里执行自动化脚本