- adb对于安卓移动端来说,是个非常重要的调试工具。
- 本篇介绍使用adb指令安装、卸载应用
文章目录
(adb的安装包我已上传到了网盘。可以直接搜索公众号【软件测试必备技能】或 滑到文章底部,点击公众号卡片扫描二维码,前往关注领取。)
- ADB的安装与设置可以参考博客之前的文章:
adb详细教程(一)-下载安装与环境变量配置
adb详细教程(二)-开启手机开发者模式、通过adb连接安卓设备
一、准备工作
- 使用adb安装应用之前,要确保设备已经连接到电脑。
(1)查询连接设备:adb devices
- 指令
adb devices
- 响应
- 序列号:adb 会创建一个字符串,用于通过端口号唯一标识设备。下面是一个序列号示例:“164520ff”
- 状态:设备的连接状态可以是以下几项之一:
- offline:设备未连接到 adb 或没有响应。
- device:设备已连接到 adb服务器。
- no device:未连接任何设备。
- 如果加入 “-l” 选项,响应会打印出设备具体的型号参数
adb devices -l
(2)如果设备未连接可尝试重启adb服务:adb kill-server/adb start-server
启动和停止的指令,在adb出现异常需要重启的时候非常有用。
- 停止服务指令
adb kill-server # 停止服务
- 停止服务响应
- 无响应
- 无响应
- 开启服务指令
adb start-server # 开启服务
- 开启服务响应
- 返回结果如下,表示ADB服务成功启动
- 已经启动的情况下,再使用启动的指令就不会有返回结果
- 返回结果如下,表示ADB服务成功启动
- 尝试重连后,观察手机是否有弹出允许调试的弹框, 点击允许。再使用查询连接设备的指令,大概率可以看到设备已成功连接。
- 如果还有问题可以参考博客之前的文章,查看是否有遗漏的步骤: adb详细教程(二)-开启手机开发者模式、通过adb连接安卓设备
二、安装应用
(1)安装应用:adb install
- 指令
adb install D:\test.apk # 安装指令,D:\test.apk为APK路径
注意,如果文件路径中有空格的情况下,需要给路径加上引号
adb install "D:\test file\test.apk"
- 响应
- 正常情况下,响应为“success”
- 正常情况下,响应为“success”
- 这里也介绍几种安装失败的情况:
- 设备未连接:adb.exe: no devices/emulators found
- 文件未找到:adb: failed to stat D:\test1.apk: No such file or directory
- 在安卓低系统设备上,这个指令直接用于覆盖安装时会报错:INSTALL_FAILED_ALREADY_EXISTS
- 博客之前文章也介绍过一种失败的情况,有需要可前往查看:使用adb安装apk报错:INSTALL_FAILED_INVALID_URI)
- 设备未连接:adb.exe: no devices/emulators found
(2)覆盖安装:[-r]
- 上面有提到,如果当设备上已有目标应用的情况下在系统上安装会失败,在安卓高系统的设备上(具体应该是安卓10左右的系统,可以安装的时候试一下)是允许直接覆盖安装的。
- 低系统的安卓设备覆盖安装需要增加选项[-r]
- 指令:
adb install -r D:\test.apk # 安装指令,D:\test.apk为APK路径
- 这样安装,就不会出现上面的报错。
adb install命令的完整格式是:adb install [-l] [-t] [-r] [-s] ,其中-l表示锁定应用,-t表示安装调试版apk,-r表示重新安装应用并保留数据,-s表示安装到SD卡而不是内部存储。
(3)其他选项
- adb install 还有一些其他不常用的选项。以下是adb安装器的帮助信息的中文翻译:
- 将单个应用包推送到设备并安装:install [-lrtsdg] [–instant] PACKAGE
- 将多个APK推送到设备并作为单个应用包安装:install-multiple [-lrtsdpg] [–instant] PACKAGE…
- 将一个或多个应用包推送到设备并原子性地安装:install-multi-package [-lrtsdpg] [–instant] PACKAGE…
- 指令其他选项:
- -r: 替换现有应用
- -t: 允许安装测试包
- -d: 允许版本代码降级(仅限可调试包)
- -p: 部分应用安装(仅限install-multiple)
- -g: 授予所有运行时权限
- –abi ABI: 覆盖平台的默认ABI
- –instant: 使应用作为临时安装应用安装
- –no-streaming: 始终将APK推送到设备并作为单独的步骤调用包管理器
- –streaming: 强制将APK直接流式传输到包管理器
- –fastdeploy: 使用快速部署
- –no-fastdeploy: 防止使用快速部署
- –force-agent: 在使用快速部署时强制更新部署代理
- –date-check-agent: 当本地版本较新且使用快速部署时更新部署代理
- –version-check-agent: 当本地版本具有不同的版本代码且使用快速部署时更新部署代理
三、卸载应用
- 指令
adb uninstall app_key # 卸载指令,app_key为需要删除的目标包名
- 响应
- 正常情况下,响应为“success”
- 正常情况下,响应为“success”
- 这里也介绍几种安装失败的情况:
- 设备上,包名对应的应用不存在,低系统和高系统的报错信息不一样,但都是因为应用已经被删除了
- 设备未连接
- 设备上,包名对应的应用不存在,低系统和高系统的报错信息不一样,但都是因为应用已经被删除了
四、连接多个设备时,将命令发送至特定设备
- 如果在多个设备可用时发出命令但未指定目标设备,adb 会提示错误:“adb: error: failed to get feature set: more than one device/emulator”。
- 当电脑连接多个设备时,adb指令必须要指定目标设备。
- 首先,通过查询设备的指令,获取设备的序列号。
- 以安装指令为例,将安装指令发送至上图的设备中
adb -s R38MB install test.apk
- 这样就可以将命令发送至特定设备。
附录:【adb详细教程】系列文章目录
adb详细教程(一)-下载安装与环境变量配置
adb详细教程(二)-开启手机开发者模式、通过adb连接安卓设备
adb详细教程(三)-使用adb安装app、卸载app
—————————————————————————————————
adb安装包我已上传到了本人运营的博客同名公众号【软件测试必备技能】。公众也会不定期会上传测试相关资料,有需要可以前往领取。
有需要可点击文章下方二维码,前往领取~
来源地址:https://blog.csdn.net/weixin_40883833/article/details/132266091