why
1.测试App端占比例非常打
2.手机类型很多(android,ios等),种类包含手机*,平板,车载机器
notice:adb 针对android设备
adb
adb简介
Android Debug Bridge简称adb
adb意义
Android sdk 中提供的用于管理模拟器真机状态的工具
adb原理
当您启动某个 adb 客户端时,客户端会先检查是否有 adb 服务器进程正在运行。如果没有,它将启动服务器进程。服务器在启动后会与本地 TCP 端口 5037
绑定,并监听 adb 客户端发出的命令 - 所有 adb 客户端均通过端口 5037
与 adb 服务器通信。
然后,服务器会与所有正在运行的设备建立连接。它通过扫描 5555 到 5585 之间(该范围供前 16 个模拟器使用)的奇数号端口查找模拟器。服务器一旦发现 adb 守护进程 (adbd),便会与相应的端口建立连接。请注意,每个模拟器都使用一对按顺序排列的端口 - 用于控制台连接的偶数号端口和用于 adb 连接的奇数号端口。例如:
- 模拟器 1,控制台:5554
- 模拟器 1,adb:5555
- 模拟器 2,控制台:5556
- 模拟器 2,adb:5557
- 依此类推…
如上所示,在端口 5555 处与 adb 连接的模拟器与控制台监听端口为 5554 的模拟器是同一个。
服务器与所有设备均建立连接后,您便可以使用 adb 命令访问这些设备。由于服务器管理与设备的连接,并处理来自多个 adb 客户端的命令,因此您可以从任意客户端(或从某个脚本)控制任意设备。
我们在使用的时候需要安装一个ADB驱动,我的理解是,这个驱动是用来检测安卓设备的,一旦有安卓设备接到USB端口,ADB驱动就会将其挂载到相应的设备列表,这样ADB Sever就可以操作这个设备了,所以ADB驱动是一定需要的。
环境搭建
参考安装预习贴:Android Studio安装(推荐使用这种方法安装SDK)
1.安装JAVA
%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin
2.安装ANDROID_HOME
Android SDK Build_Tools
Android Emulator
Android SDK Platform-Tools
Android SDK Tools
notice:
1.注意Emulator环境变量位置,可能会报找不到文件错误
命令
安装install/uninstall
adb install (-r) xxx.apk
adb uninstall (-k) 包名(com.xueqiu.adnroid)
-r: 是否覆盖安装
-k 是否删除配置文件
安装 adb devices
device:正常
offline:设备无响应--一般通过kill-server+adb devices解决
unknow:未知
as(android-studio 以下简称as):emulator-xxxx
三方(mumu,夜神,等):ip:端口
真机:不定长度
查看模拟器芯片 ro.product.cpu.abi
adb shell getprop ro.product.cpu.abi
参考贴:【Android-studio】常见问题--安装apk报"INSTALL_FAILED_NO_MATCHING_ABIS"
查看应用列表 packages
显示所有应用:adb shell pm list packages
显示系统自带应用:adb shell pm list packages -f
显示第三方应用:adb shell pm list packages -3
获取包名 activity
mac/win
adb shell dumpsys activity |grep(findstr) "mFocusedActivity"
快速启动 start
adb shell am start -n <包名>/<avticity名>
验证获取包和应用是否正确,能否快速启动
强制停止应用 force-stop
adb shell am force-stop <包名> (com.xueqiu.android)
设备与电脑传输文件 pull/push
notice:跳出android系统执行,否则提示无adb not found
电脑->设备
adb push <电脑路径><设备路径>
设备->电脑
adb pull <设备路径><电脑路径>
设备截图 screencap
notice:截当前图,非长图
adb shell screencap <设备>
adb pull <图地址> <电脑地址>
日志 logcat
adb logcat -c 清除日志
adb logcat -v time >文件路径 解释:logcat输入的路径文件
性能参数 top,cpuinfo,meminfo
adb shell top |grep ”包名“
adb shell dumpsys cpuinfo --cpu信息
adb shell dumpsys meminfo --内存信息