使用bat同时在多台设备安装应用

发布时间:2022-4-01 09:59

现在公司在调试一款Android设备,平时都是adb远程连上去,然后在Android Stuido里直接运行就行了,但是,现在一排设备摆在那里,要安装的时候,我得一个一个连上,然后一个一个安装,就很麻烦。或者我打好包,再到每个设备上安装,就很不优雅。百度一番,结合自己情况稍微修改一下,完美解决。

先上jio本

adb_connect.bat

adb connect 192.168.1.51
::adb connect 192.168.1.52
adb connect 192.168.1.53
adb connect 192.168.1.54
adb connect 192.168.1.55
::adb connect 192.168.1.56

multi.bat

@echo off

echo --------------------------------------------------------
echo Get devices
adb devices > devices.txt
type devices.txt

echo --------------------------------------------------------
echo start install %1 %2

for /f  "skip=1 tokens=1 delims=	" %%i in (devices.txt) do (
start adb_install %%i %1 %2
)

del devices.txt
echo --------------------------------------------------------
pause

adb_install.bat

echo start install apk to %1
adb -s %1 install -r %2
adb -s %1 shell am start %3
exit

使用方法

  • 编辑adb_connect.bat,输入要安装的设备ip
  • 复制apk到当前目录下
  • powershell运行.\adb_connect.bat连接设备
  • powershell运行.\multi.bat .\test.apk com.xiamo.text/.MainActivity安装并启动(第一个参数apk路径,第二个为启动的Activity)
  • 弹出一堆黑框,各自安装,安装完退出,全部退出表示全部安装完成
  • 后面是我凑字数的,不用看了

连接设备

建个文件夹,保存相关脚本文件(注:后续命令中的{}表示这里是个参数,需更换成对应内容)

要安装,首先要连到设备,使用命令adb connect {ip}:{port}

一般来说,端口都是5555,可以省略,所以直接adb connect {ip}就行

例如:adb connect 192.168.1.10 (不一定局域网哟,只要能连到就行,可以用端口映射把设备5555端口映射出来)

一两台设备可以手动连,多了就直接写个adb_connect.bat(::表示注释)

adb connect 192.168.1.51
::adb connect 192.168.1.52
adb connect 192.168.1.53
adb connect 192.168.1.54
adb connect 192.168.1.55
::adb connect 192.168.1.56

然后打开powershell,运行.\adb_connect.bat就行了

这种方式时串行的,需要连到第一个一会才会连第二个,如果设备网络出现问题,就会等连接失败再进行下一个连接

当然你也可以改成并行的

获取设备

如果只有一个设备连接,直接使用adb install {apk}就可以安装

如果连接了多个设备,执行上述命令会提示超过一个设备连接,无法安装,因此安装的时候需要指定设备,即adb -s {device} install {apk}

因此我们需要当前连接的设备列表

执行adb devices即可,获取到设备后,然后再挨个执行安装就可以了

写个bat保存设备列表到devices.txt中

adb devices > devices.txt

安装应用

然后就是一个for循环,挨个安装,因为我们的目标是并行安装,所以另外写了一个adb_install.bat用于安装

for /f  "skip=1 tokens=1 delims=	" %%i in (devices.txt) do (
start adb_install %%i %1 %2
)

跳过第一行,因为第一行是List of devices attached

启动应用

因为adb install只负责安装,不负责启动

所以启动我们还需要另外的命令

adb shell am start {package/activity}

同样需要指定设备,即adb -s {device} shell am start {package/activity}

GoLang与Java各自生成grpc代码流程介绍 生活杂谈

GoLang与Java各自生成grpc代码流程介绍

1.背景: 由于公司的日志系统使用的是plumelog,最近生产环境老是报 jedis连接池不够,导致丢失日志,而且服务老是重启,怀疑跟日志系统有关,于是自己改造plumelog,使用go grpc...
MySQL同步数据Replication的实现步骤 生活杂谈

MySQL同步数据Replication的实现步骤

MySQL提供了Replication功能,可以实现将一个数据库的数据同步到多台其他数据库。前者通常称之为主库(master),后者则被称从库(slave)。MySQL复制过程采用异步方式,但延时非常...
C#编程中最容易犯的7种编写错误分享 生活杂谈

C#编程中最容易犯的7种编写错误分享

编程时犯错是必然的,这篇文章主要和大家来分享7个C#编程中最容易犯的7种编写错误,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下! 1、拼接字符串 在C#编程中,字符串类型的处理是比较...