adb近期使用总结

手机按键:menu、back、home、search
adb connect 127.0.0.1:62001
连接夜神模拟器

用户体验测试
不要放弃小白用户
不要放弃低配机型

==好的产品不是体现在用户多,赚钱多,而是用户体验好,有粘性

测试大纲
1.UI测试
2.功能测试
3.压力
4.兼容测试
5.稳定性测试
6.用户体验
7.性能测试
8.安全测试
9.安装卸载
10.后台统计
11.增值业务
12.更新测试
13.权限整理


==monkey命令
adb shell monkey packagexx --ignore-timeouts 1000
在monkey测试中常用的命令组合有:
1 monkey -p com.yourpackage -v 500//简单的输出测试的信息。
2 monkey -p com.yourpackage -v -v  500 //以深度为二级输出测试信息。
3 monkey -p com.yourpackage -s 数字 -v 500//为随机数的事件序列定一个值,若出现问题下次可以重复同样的系列进行排错。
4 monkey -p com.yourpackage -v --throttle 3000 500//为每一次执行一次有效的事件后休眠3000毫秒。

monkey的log
Monkey finished这个字段表明本次的Monkey没有异常,测试通过。
CRASH表明有进程出现问题,测试不通过。
ANR测试对象出现了无响应的现象,因此测试不通过。--throttle <毫秒>值建议为500
(1)crash 闪退;
(2)exception 异常;
(3)force closed 强制退出
(4)anr (application no response)程序无响应

==adb命令
#系统日志输出
adb logcat -v threadtime > androd.log

#检查package
aapt dump badging packagexx
adb shell "logcat | grep "Displayed" "  点击需要测试的应用就可以看到包名

#删除系统应用 
先将设备改为可读可写adb remount
在通过adb shell 进入到/system/app rm掉

#文件双向传递
adb pull /sdcard/sss.png d:test
adb push d:test  /sdcard/sss.png

#获取ui控件元素
adb shell uiautomator dump   
UI hierchary dumped to: /storage/emulated/legacy/window_dump.xml

#列出设备上输入法
adb shell ime list -s 
com.google.android.inputmethod.pinyin/.PinyinIME

#选择输入法
adb shell ime set com.xxx

#分辨率
adb shell wm size

#录mp4
adb shell screenrecord sdcard/record.mp4
执行命令后操作手机,ctrl + c 结束录制,录制结果保存至 sdcard

#截图
adb shell screencap -p /sdcard/screen.png

#获取设备分辨率
adb shell wm size Physical size: 1080x1920 

#拨打电话
adb shell am start -a android.intent.action.CALL -d tel:10086 Starting: Intent { act=android.intent.action.CALL dat=tel:xxxxx }

#键鼠模式模拟输入
adb shell input tap 500 500
adb shell input swipe 900 500 100 500
adb shell input keyevent KEYCODE_HOME
adb shell input text test123456

#结束与启用服务
am force-stop , 后跟包名,结束应用
am startservice , 启动一个服务

#pm列出已装应用
adb shell pm list package
-s:列出系统应用
adb shell pm list package -s
-3:列出第三方应用
adb shell pm list package -3
-f:列出应用包名及对应的apk名及存放位置
adb shell pm list package -f
-i:列出应用包名及其安装来源

#查看指定应用的dump信息?
adb shell pm dump com.xx.xx
#pm clear , 清除应用数据

#安装卸载 -r覆盖安装哈
目标 apk 存放于 PC 端,请用 adb install 安装
目标 apk 存放于 Android 设备上,请用 pm install 安装
pm uninstall , 卸载应用,同 adb uninstall , 后面跟的参数都是应用的包名
pm set-install-location , pm get-install-location , 设置应用安装位置,获取应用安装位置
[0/auto]:默认为自动
[1/internal]:默认为安装在手机内部
[2/external]:默认安装在外部存储


#am之类的
§   am force-stop , 后跟包名,结束应用
§   am startservice , 启动一个服务
§   am broadcast , 发送一个广播
§   am monitor , 监控 crash 与 ANR

#am启动应用测时间
adb shell am start -W com.xx.xx/.MainActivity

#firstInstallTime首次安装时间

adb shell pm dump com.suning.mobile.ebuy|findstr firstInstallTime

#电量消耗信息
adb shell dumpsys batterystats
adb shell dumpsys batterystats  com.xx.xx

#记录apk安装路径
adb shell pm path com.xx.xx

#导出apk到pc
adb shell pull [apk安装路径] xx.apk

#内存消耗
adb shell dumpsys meminfo com.xx.xx

#cpu消耗
adb shell dumpsys cpuinfo com.xx.xx

#性能用到的
#top==adb shell 下
top -s cpu -m 5
cpu占用最高的5个进程
top -m 10|grep xx

adb shell cat /proc/cpuinfo
adb shell cat /proc/meminfo
adb shell dumpsys meminfo $pid
adb shell dumpsys meminfo $packageName

#offline时候解决办法
adb kill-server/start-server
重启手机=开发者模式
查看端口是否被占用很有可能是360

==手机系统系列
#查看全部属性
C:\Users\xx>adb shell getprop > d:/prot.txt

#查看机器的序列号
C:\Users\zejun>adb shell getprop ro.serialno

#查看机器的CID号
C:\Users\zejun>adb shell getprop ro.carrier

#查看SPL(Hboot)版本号
C:\Users\zejun>adb shell getprop ro.bootloader

#重启手机
adb reboot

#重启手机到recovery界面
adb reboot recovery

#重启手机到bootloader界面
adb reboot bootloader

adb shell service list

#扒拉日志到本地
adb pull /sdcard/log/ D:/log1/

#查看bug报告
adb bugreport

#在logogcat 里面打印你设定的信息
adb shell log -p d -t xx "test adb shell"
-p:优先级,-t:tag,标签,后面加上 message

#
adb logcat -v time -s xx

#adb shell getprop ro.build.version.sdk获取设备的 sdk 版本、设备参数键值对

#linux命令依旧适用
cat、cd、chmod、cp、date、df、du、grep、kill、ln、ls、lsof、netstat、ping、ps、rm、rmdir、top、touch、重定向符号 ">" ">>"、管道 "|"

#文件写入
运行写入pc
adb shell monkey -p com.android.settings 5000 > d:\monkey.log
运行写入安卓机加引号
adb shell "monkey -p com.android.settings 5000 > sdcard/monkey.log"


#几个ss内存的区别
VSS   Virtual Set Size  虚拟耗用内存(包含共享库占用的内存)
RSS   Resident Set Size 实际使用物理内存(包含共享库占用的内存)存在重复计算
Pss(proportional set size)是占用的私有内存加上平均分配的共享内存。
Uss(unique set size)是私有内存,如果应用程序被终止了,这部分内存的将被释放。

#查看内存泄漏
DDMS
Update Heap
GC查看一下Heap的使用情况
Heap抓出来分析Dump HPROF file
MAT内存分析公共 memory analysis

a.bat
set process=com.xx.xx             #需要测试的进程名
@adb shell dumpsys meminfo %process% | findstr "Pss"        
:m
@adb shell dumpsys meminfo %process% | findstr "TOTAL"  
@ping -n 5 127.1>nul
@goto m

adb shell am dumpheap com.xx.xx /sdcard/test.hprof
执行失败


命令模板:adb logcat 标签:日志级别 (*:s)。

筛选Warn级别以上的日志(包含Error)命令:adb logcat *:W 表示不匹配标签。

筛选System的日志命令:adb logcat System:* *:s第一个星号表示不匹配日志级别, *:S用于设置所有标记的日志优先级为S,这样可以确保仅输出符合条件的日志。 
由于应用每次启动后,系统分配的PID都不一样。因此,需要根据包名或UID筛选日志时,需要先启动应用,再使用命令adb shell dumpsys meminfo 包名 查看到UID信息,最后根据PID筛选日志。

命令模板:`adb logcat -f 手机上文件目录 标签:日志级别 *:s | grep PID`

如:`adb logcat -f /sdcard/Download/log.txt JPush:D *:s | grep 18270`

### 保存到电脑

命令模板:`adb logcat > 电脑上文件目录 标签:日志级别 *:s | grep PID`

如:`adb logcat > ~/Desktop/log.txt JPush:D *:s | grep 18270`


=-=mat分析未成功?
下次再试
1.logcat是android中的一个命令行工具,可以用于得到程序的log信息

2.常见的日志记录方法

A.logv --VERBOSE,显示全部信息

B.logd --DEBUG,显示调试信息

C.logi --INFO,显示一般信息

D.loge --ERROR,显示错误信息

二.常用命令

(1) adb logcat -help --显示帮助信息

(2) adb logcat -s (标签) --输出指定标签的信息

(3) adb logcat -f (路径) --输出日志的文件到指定路径,注意该路径是手机上的路径,不能一直用电脑连着手机收集日志的场景非常有用

(4) adb logcat > (文件名) --将log日志输出到指定文件中,使用 more (文件名)命令可以查看日志信息

(5) adb logcat -v time --查看日志的输出时间

(6) adb logcat -v threadtime --查看日志的输出时间和线程

(7) adb logcat -v (格式) --指定logcat日志的输出格式,有如下格式:

①brief:默认的日志格式“优先级 / 标签 (进程ID) : 日志信息”

②process:“优先级 (进程ID) : 日志信息”

③tag:“优先级 / 标签 : 日志信息”

④thread:“优先级 ( 进程ID : 线程ID) 标签 : 日志内容”

⑤raw:只输出日志信息, 不附加任何其他信息

⑥time:“日期 时间 优先级 / 标签 (进程ID) : 进程名称 : 日志信息”

⑦long:“[ 日期 时间 进程ID : 线程ID 优先级 / 标签] 日志信息”

(8) adb logcat -c --清空日志缓存信息

(9) adb logcat -d --输出命令并退出

(10) adb logcat -t (条数) --输出指定条数的最近的日志

(11) adb logcat -g --查看日志缓冲区信息

(12) adb logcat -b (缓冲区类型) --加载指定缓冲区日志,缓冲区有如下几种:

①system --与系统相关的日志信息

②radio --广播电话相关的日志信息

③events --事件相关的日志信息

④main --默认的缓冲区

(13) adb logcat -B --以二进制格式输出日志

(14) adb logcat *.(指定等级) --过滤指定等级的日志,有如下等级(优先级从低到高):

①V --Verbose,明细(最低优先级)

②D --Debug(调试)

③I --Info(信息)

④W --Warning(警告)

⑤E --Error(错误)

⑥F --Fatal(严重错误)

⑦S --Silent(最高优先级)

(15) adb logcat | grep (字符串) --过滤固定字符串,grep 后加上 -i标签过滤时可忽略大小写

(16) adb logcat | grep "^..tag" --使用正则表达式过滤,如 adb logcat | grep "^..Activity"
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,033评论 3 119
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,918评论 25 709
  • 倚马憇云端,横笛莲溪畔。 锦鲤邀鹤舞,风簇芙蓉欢。 蜂蝶萦两侧,清音回九天。 仙官频啧叹,争相赴人间。
    露雨_霜雪阅读 3,218评论 0 3
  • 酒店的自助餐并不好吃,但吃饱没问题。但仅仅吃饱,总觉得还有欲望没有满足,于是踱步到湘江边,睁开眼睛看黑夜……
    南山葵阅读 1,456评论 0 0