adb
一、adb简介
ADB是Android-Sdk里的一个客户端-服务器端程序,其中客户端是我们操作的电脑, 服务器端是Android设备,它的全称为Android Debug Bridge,就是起到调试桥的作用。通过这个桥我们可以管理设备或手机模拟器的状态,还可以进行很多手机操作,如安装软件、系统升级、运行shell命令等等。简而言之,ADB就是连接Android手机与PC端的桥梁,可以让用户在电脑上对手机进行全面的操作。
注:通熟易懂的说就是通过adb来控制安卓手机,类似于手机上的开发者工具
二、adb的安装
1、adb属于无脑安装,可以选择指定的盘符
2、配置环境变量:将adb的安装目录加入Path环境变量中
3、验证环境变量是否配置成功
在cmd中输入adb,有反应则说明配置成功
三、使用adb连接手机
有两种方式能实现连接:有线连接和无线连接
注意:①、不管是有线还是无线,都需要先打开手机的开发者模式,然后使用USB线,将手机和电脑连接。
②、必须一直保持手机和电脑的连接状态,即不能把usb线拔了
3.1、有线连接
1、使用USB线连接手机和电脑
2、在手机上启动开发者模式,并且打开USB调试功能
3、在cmd中输入adb devices检查手机和adb是否连接成功
出现了唯一设备号和device则连接成功,若出现设备号 unauthorized则是未授权的意思,可以关闭开发者模式重新来一遍注意授权
连接成功之后就可以通过在cmd中输入命令的模式对手机为所欲为。
3.2、无线连接
1、使用USB线连接手机和电脑
2、在手机上启动开发者模式,并且打开USB调试功能
3、保证手机和电脑处于同一局域网内
4、查看手机局域网IP:
在cmd中输入:adb shell netcfg
5:启用手机远程服务并连接
①、启用并设置端口号:
在cmd中输入:adb tcpip 端口号(随便写,例如5555)
②、连接adb服务:
在cmd中输入:adb connect 手机局域网IP:端口号
6:检查是否连接成功
在cmd中输入adb devices,出现设备名称,则连接成功,反之
四、adb的常用命令
1、从电脑上给手机上装软件:adb install 安装包名 (可以从桌面上直接拖过来)
2、从电脑上卸载手机上的软件:adb uninstall 软件名(需要从adb shell中获取软件名)
如果要知道软件的名字,需要在adb shell里边获取:adb shell-->pm list packages,筛选出自己安装的第三方软件:pm list packages -3
注:也可以直接写成:adb shell pm list packages
adb shell的作用就是在安卓手机上开启服务器,输入adb shell就可以进入Linux环境下
安卓手机操作系统的内核实际上是Linux操作系统,所以其实可以在安卓手机上搭建测试环境(淘汰的安卓手机不要丢,可以用来做服务器用)
adb shell就和操作Linux系统类似了,大家基本命令都是可以通用的,adb不支持ll,只支持ls
卸载安装软件都需要退出shell:exit
3、传输文件(需要退出shell):
adb push 文件名 路径 电脑上的文件传到手机里边
adb pull 文件名 路径 手机里的文件传到电脑里边(Windows的根目录不可用)
4、查看APP日志(退出shell):adb logcat > d:\日志.txt(需要截止时强制退出:Ctrl+C,给存到d盘的一个文件里边,这个文件就叫做日志.txt)
日志一般来说我们都是看不懂的,可根据关键词查看APP是否有较大问题:
- ANR:程序无响应
- CRASH:APP崩溃
- Exception:APP代码报错
5、adb shell的命令,和Linux命令大体是互通的
ps -ef:可以看到现在正在运行哪些程序
top:可以实时的看到CPU,内存MEM的变化
6、其他
adb get-product:获取设备的ID号
adb help:获取帮助信息
adb get-serialno:获取设备的序列号
adb start-serve:启动adb服务
adb version:查看adb版本号
adb kill-server:关闭adb服务
adb devices:查看当前连接电脑的设备,安卓设备或者模拟器会被显示出来
五、adb使用场景
5.1、获取包名
①获取设备所有的安装包
adb shell pm list packages (查看所有包)
adb shell pm list package -3(查看第三方的包)
②获取要监控的app的包名
cmd输入:adb shell am monitor,回车后再手机启动该app,这时包名会显示在cmd最后一行
5.2、资源监控
①内存和CPU监控:top -d 1 | grep 包名
②电量监控:adb shell dumpsys battery
③流量监控:
获取进程指定进程id:adb shell “ps | grep 包名 ”
获取进程id流程:adb shell cat /proc/查询出来的pid/net/dev
5.3、日志捕获
adb logcat > d:\info.txt
5.4、稳定性测试
https://www.jianshu.com/p/cb0cee9a22f1
https://www.cnblogs.com/yindada/p/9845032.html
对指定包进行随机测试并输出日志到文件 adb shell monkey -p com.zhihu.android -vvv 200 > d:\info.txt
测试结果分析:
a、程序无响应,ANR问题:在日志中搜索“ANR”
b、崩溃问题:在日志中搜索“CRASH”
c、其他问题:在日志中搜索”Exception”