python自动化app自动化:3.常用的adb命令

Posted new nm个对象

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python自动化app自动化:3.常用的adb命令相关的知识,希望对你有一定的参考价值。

一.adb工具简介

1.什么是adb工具

adb(android 调试桥)用于电脑和 android 手机的连接,可以通过 adb 工具,用电脑来操控手机。adb 是谷歌提供的一个开发用的辅助工具,包含在 android studio 中。谷歌后来提供了单独的平台工具的包(https://developer.android.google.cn/studio/releases/platform-tools),包含了adb。另外各个 android 模拟器中也包含了 adb 工具。

2.adb工具的原理

adb 工具包含:

  • adb server
  • adb client
  • adb daemon(运行在 android 手机中)
    在这里插入图片描述

3.电脑连接手机的准备

  • 如果出现电脑和手机无法连接,可以考虑重启 adb server,或者是重启手机。

  • 常见的模拟器比如 genymotion(可以自由选择不同的 android 版本,还支持来电和短信的模拟)、逍遥模拟器、夜神模拟器。实际工作中通常是用真机进行测试, 除非是一些手游,会考虑模拟器的支持。

  • adb 工具本身有版本,可以通过 adb version 来查看。如果尝试用 sdk中带的 adb 工具连接模拟器,可能会出现提示 client 的版本和 server 的版本不一致。用其中一个 adb 覆盖另外一个 adb 即可。

电脑通过 adb 连接手机,手机中需要做一些设置。

  • 进入模拟器或者手机的设置菜单
  • 点击关于平板电脑
  • 连续点击最下面的版本号,进入开发者模式
  • 进入开发者选项
  • 打开 usb 调试(逍遥模拟器不打开也 ok)
  • 对于真机而言,还需要注意“选择 usb 配置”不能是仅限充电。
  • 如果是华为品牌的真机,还可能需要安装华为的手机助手

二.常用的adb命令

1.adb devices

该命令用于查看电脑连接的设备(手机或者模拟器)
在这里插入图片描述
127.0.0.1:21503 对应的就是模拟器,21503 是逍遥模拟器的默认端口。
127.0.0.1:21503 对应手机的序列号,用于区分不同的手机设备。序列号的后面是
device 表示设备正常,如果发现是 offline,一般通过重启手机/模拟器可以解决。
可以通过 adb connect 或者 adb disconnect 来连接或者断开手机。对于真机而言, 一般可以通过 ip 地址来进行连接,要求手机和电脑在同一个局域网内
在这里插入图片描述
注意:如果多次重启模拟器或者真机,仍然连接不上设备。可以考虑是模拟器文件中的adb.exe与sdk中的不兼容,将sdk中的adb.exe文件替换到模拟器文件中。

2.adb install

该命令用于在手机上安装应用。
adb install apk文件路径
如果电脑同时连接多个手机,会提示错误,需要通过-s 参数来明确在哪个手机上安装。
adb -s 序列号 install apk 文件路径
在这里插入图片描述
adb install 时也可能失败,常见的原因有:
1、app 对应的 sdk 的最低版本比 android 系统对应的 sdk 版本要高
2、app 对应的处理器不兼容

3.adb uninstall

adb uninstall 包名
包名可以在 androidmanifest.xml 文件中查看到
在这里插入图片描述
androidmanifest.xml 文件由于进行扰码,所以查看起来不方便,可以通过 aapt 工具来查看包名。

aapt d badging apk文件路径
在这里插入图片描述
通过包名卸载 app。
在这里插入图片描述
通过包名卸载 app。
在这里插入图片描述

4.adb pull

该命令用于将手机上的文件取到(复制到)电脑上。
adb pull 手机上文件路径 电脑上文件路径
在这里插入图片描述
需要注意 android 系统和 windows 系统中斜杠线的方向。
实际工作中一般会从手机上获取截图、录频、数据库文件、配置文件、日志文件等。

5.adb push

该命令用于将电脑上文件复制到手机上。
adb push 电脑文件路径 手机文件路径
在这里插入图片描述
实际工作中一般从电脑上复制一些复杂的测试文件到手机上去。

6.adb shell

该命令用于进入 android 系统。
在这里插入图片描述
针对真机操作 adb shell,往往看到的用户是 shell 用户,可以通过 adb root 切换为
root 用户,前提是真机已经 root 过。
android 系统中有几个文件夹需要注意:
1、/data/app,用来放用户自己安装的 app 的 apk 文件
在这里插入图片描述
2、/data/data,用来放系统应用和用户应用的安装目录的
在这里插入图片描述
3、运行考研帮的 app 后,相应目录下出现新的文件夹和文件。
在这里插入图片描述

7.adb kill-server/adb start-server

这组命令用于重启 adb 服务器。

8.adb shell screencap

该命令用于截图。
adb shell screencap -p 截图文件路径(手机上的路径)

9.adb --help

查看帮助命令

10.adb logcat

查看adb日志
adb logcat -v time -s *:E > d:\\logcat.txt
-v time 是给日志加上时间戳,-s 是对日志进行过滤,*:E 表示只看错误及以上的信息。
日志信息级别分为:

1、V
2、I,系统信息
3、D,调试信息
4、W,警告信息
5、E,错误信息
实际测试时,操作同时保存 logcat 的日志,操作结束后,可以在 logcat 日志中进行关键字查询,比如 error、exception、anr、crash 等等。

11.adb bugreport

查看 android 系统启动日志。在对手机进行整机测试时可以查看该日志。单独对
app 进行测试不需要关注

12.adb shell dumpsys battery

查看设备状态
在这里插入图片描述

13.adb shell dumpsys activity top

获取最上层的应用的信息(包名和活动名)

一般打开被测app首页后,在终端运行该命令来获取app的相关信息
在这里插入图片描述

14.adb shell dumpsys activity activities

获取当前的任务列表
在这里插入图片描述

15.adb shell am start -W -n app包名/app活动名

启动app

16.aapt dump badging apk文件路径 | grep(findstr) launchable-activity

对于未安装的app,使用该命令获取app的包名和活动名

以上是关于python自动化app自动化:3.常用的adb命令的主要内容,如果未能解决你的问题,请参考以下文章

2.app自动化测试--adb常用API

Appium - 自动化测试框架 - adb

appium+python自动化46-安装app三种方式

ADB常用命令

appium+python自动化38-adb shell按键操作(input keyevent)

《自拍教程61》Python adb反复启动退出高德地图App