ADB笔记

ADB
adb的全称为Android Debug Bridge,就是起到调试桥的作用。通过adb我们可以在Eclipse中方便通过DDMS来调试Android程序,说白了就是debug工具。

安装
1、下载adb工具,将adb配置到电脑path环境变量中
2、打开cmd输入adb查看安装是否成功

连接手机
1、打开手机开发者选项(在手机信息中找到版本号,点击10次左右激活开发者)
2、将开发者选项中的usb调试打开
部分手机需要调整USB配置
3、打开cmd输入adb devices查看是否连接连接成功
如果app出现问题:
首先想到定位接口问题,要用到Charles工具

查找对应接口状态开头码:
如果状态码是200,那查看请求内容与接口文档是否一致,然后查看响应是否与接口文档一致
如果状态码为4开头我会先定位客户端问题(请求是否发送出去,是否发送完整)
如果状态码是5开头我会先定位服务端问题(响应是否发送,是否发送完整,是否响应接收)

如果app崩溃:
用xshell连接服务器,找到存储错误日志的位置,操作复现路径,定位问题,发送给开发
如果xshell没有找到,就去手机内部储存里找到对应软件里的crash文件,发送给开发

adb devices:
查看电脑连接移动设备号
adb install:
-r 替换已存在的应用程序,也就是说强制安装
-t 允许测试包

新老版本覆盖的目的:
查看新的功能有没有更新,其次功能是否可用,展示是否正常
查看当前运行包名
adb shell dumpsys window | findstr mCurrentFocus
动态获取包名
adb shell am monitor

查看所有安装包名
adb shell pm list packages
-f
查看包安装位置
|grep 关键字
过滤结果
adb uninstall
-k参数:保留安装包的数据和缓存目录

adb logcat
-t"选项 : 输出最近的几行日志, 输出完退出

"输出 : “>” 后面跟着要输出的日志文件, 可以将 logcat 日志输出到文件中, 使用adb logcat > 路径\文件名 输出到指定位置

日志级别
优先级是下面的字符,顺序是从低到高:

D — 调试 debug
I — 信息 info
W — 警告 warn
E — 错误 error

输出指定App日志
adb logcat | findstr 包名 >输出路径\文件名
查看指定App日志
1、输入adb shell进入手机shell模式
2、输入logcat |grep 包名 查看指定app日志
Activity 调试
启动应用adb shell am start -n your.package.name/your.package.name-activity

停止应用adb shell am force-stop package

查看当前 Activity 名称adb shell dumpsys activity | findstr “mFocusedActivity”
文件管理

  1. 将电脑文件复制到设备sd卡上
    adb push 电脑文件路径 /sdcard

  2. 设备文件复制到电脑上
    adb pull /sdcard/text.txt 电脑文件路径
    adb shell monkey:
    adb shell monkey 程序是Google公司提供的一个压力和稳定性测试的工具

什么是稳定性测试
通过随机事件点击屏幕一段时间,app不会出现崩溃,无响应,能够正常维持运行的测试

全屏状态? adb shell settings put global policy_control immersive.full=*
恢复:adb shell settings put global policy_control null

Monkey 命令启动方式
a. 可以通过PC机CMD窗口中执行: adb shell monkey {+命令参数}来进行 Monkey测试
b. 在PC上adb shell 进入Android系统,通过执行monkey {+命令参数} 来进 行Monkey 测试
c. 在Android机或者模拟器上直接执行monkey 命令,可以在Android机上安 装Android终端模拟器

-p:
如果用此参数指定了一个或几个包,Monkey将只允许系统启动这些程序,要指定多个 包,需要使用多个 -p选项,每个-p选项只能用于一个包

–throttle :
在事件之间插入固定延迟。通过这个选项可以减缓 Monkey 的执行速度。如果不指定该选项, Monkey 将不会被延迟,事件将尽可能快地被产成

-s :
就表示seed,100表示seed的值,seed会根据这个值去生成随机事件序列,后面的50代表随机事件次数。
seed值 可以简单形象的理解为flag,建立一个标签。一般用于monkey跑命令中。我第一次设定这个seed 值等于100,去跑monkey命令,就会跑出随机事件;第二次我跑命令的时候,还是用这个seed值,那么就会跟一次跑随机事件会一模一样,是个伪随机事件。
seed的作用,就是建立一个flag,确保每次monkey命令运行跑动的所有事件顺序一致
monkey 报告组成:
第一部分:
包含 seed值,执行次数、包名

第二部分:
被测设备上的所有应用包名,本次测试使用到哪些包,未使用哪些包(建议测试某app时,杀掉其他应用进程)

第三部分:
各个事件所占百分比,只显示了事件的代号,没有显示具体什么时间,可以查询monkey源代码中各代号对应的事件

第四部分:
具体事件

第五部分:
log 完成
如果Monkey测试顺利执行完成,在log的最后,会打印出当前执行事件的次数和所花费的时间;// Monkey finished代表执行完成。
如果Monkey执行中断,在log的最后也能查看到当前已执行的次数。Monkey执行完成的log具体如下:
Events injected: 6000

:Dropped: keys=0 pointers=9 trackballs=0 flips=0

// Monkey finished
分析报告:
1.在日志中搜索关键字:
1)搜索报告中的关键字“ANR”,看有无应用无响应的事件(Application Not Responding)
2)搜索报告中的关键字“crash”,看有无崩溃的事件
3)搜索报告中的关键字“exception”,看有无其他异常事件。(如果出现空指针, NullPointerException,需格外重视)
内存泄露问题搜索"GC"
己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果

停止adb shell monkey:
打开另一个cmd命令窗口 输入 adb shell top | grep monkey 查找到monkey的进程
然后kill -9 进程号 杀死monkey进程


版权声明:本文为CHUQI_111原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>