1. 通过adb devices命令获取所有online设备的serial number。
C:\Users\Administrator>adb devices
List of devices attached
emulator-5554 device
SH0A6PL00243device
上面表示,当前有两个设备online,第一个emulator-5554是模拟器,后一个是真机会SH0A6PL00243。
2. 通过adb -s <serial number>cmd向设备发送adb命令。
比如:运行命令shell。
C:\Users\Administrator>adb -s SH0A6PL00243 shell
#
比如:down一个应用的数据库到本地f:\test目录下面。
C:\Users\Administrator>adb -s SH0A6PL00243 pull data/data/com.android.tencent/databases/AgendaDetails.db f:\test
555 KB/s (5120 bytes in 0.009s)
C:\Users\Administrator>
运行其它命令和运行pull命令一样的,只是在adb和cmd之间需要额外添加-s <serial number>即可。
控制台进入$sdk/platform-toos/目录,先输入查看设备命令
结果如下:
可以看到有两个设备,一个是Genymotion的模拟器,一个是真机,如果直接输入
会得到以下提示:
这个时候需要加上具体的设备代号才会进入shell,命令如下:
比如,我进入Genymotion的shell:
进入成功
你是想用代码实现吗?你可以启动多个线程,在线程里面进行安装,这样可以同时多个手机安装;
也可以写方法,在方法里面进行安装,这样是顺序安装;
主要方法是:调用 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()
}
}
我现在也是在做这样的东西,欢迎继续讨论,相互学习。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)