当熟悉Shell命令的人使用adb是没有任何难度的,因为adb中绝大多少命令都是引用的shell命令
以下命令进行归类,红色部分字体是测试人员常用的adb命令
基础命令
1、启动adb服务
2、终止adb服务
3、进入adb运行环境
4、获取帮助 里面有adb的各种命令和参数的介绍
5、查看adb版本
6、以root权限重启adb
7、将system分区重新挂在为可读写分区,此命令在操作系统目录时很重要
8、重启设备,可选参数进入bootloader(刷机模式)或recovery(恢复模式)
1、安装apk
2、卸载apk
可选参数-k的作用为卸载软件但是保留配置和缓存文件
3、查看app相关所有信息,包括action,codepath,version,需要的权限等等信息
4、查看app的路径
5、查看apk的版本信息
如果你得到的是下图的两个version版本,则为系统app,下面是系统app本身的版本,上面是升级之后的系统app的版本信息
6、启动activity
7、获得应用的启动时间,可以很方便地获取应用的启动时间
试验结果如下:
返回的几个结果,以WaitTime为准,返回的是从startActivity到应用第一帧完全显示的时间。
8、启动service,am的-n参数表示组件,-a参数表示命令,-a后面的参数为manifest中定义的service的action
也可:
9、查看设备log,和studio和eclipse的logcat相同,可通过参数控制输出的日志
下面的命令含义为:打印出log信息中的时间并且包含关键字 "Test" 的所有log以覆盖写的方式保存到test文件
10、查看某个app的进程相关信息
10.1
例如
如果ps后面的参数是包名则显示不了进程的详细信息,参见下面的方式获取
10.2
11、杀掉某个进程,一般用于模拟某个bug复现
12、查看某一个app的内存占用
结果如下,其中的Heap size包括了Dalvik Heap和Native Heap,平时我们所说的内存限制指的是Dalvik Heap。
13、查看单个应用程序的最大内存限制
得到的结果为199M: [dalvik.vm.heapgrowthlimit]: [199m]
这就是说Dalvik Heap size的最大值超过了199M,就很可能发生OOM
14、获取单个应用的电量消耗信息
Battery Historian是Android 5.0开始引入的,下面的命令为获取单个app的电量消耗信息,获取系统耗电信息见下节
上面的电量信息为原始数据,可以通过google编写的historian.py脚本把数据信息转换为可读性很好的html文件,类似TraceView生成的列表数据,之前在做app性能优化的时候起了很大的作用
15、跑monkey,运行过程中,应用程序会不断切换画面,按照选定的不同级别反馈信息,还可以看到执行过程报告和生成的事件。测试应用的稳定性时很实用。 现在studio也有了monkeyrunner的tool
16.发送广播
广播可以带上不同类型的参数,--es为string参数类型,--ei为int参数类型,--ez为boolean参数类型
1、查看设备名称,豌豆荚等应用就是通过此来获得设备的名称
结果:
2、查看手机分辨率有两种方法,第二种方法最为简洁
2.1
grep是一个非常有用的参数,具体含义和用法大家自行google一下,试验结果为1080 * 1920:
2.2.
返回结果为:
3、查看手机sdk版本
运行上面的命令后,列出来的version中[ro.build.version.release]: [6.0.1]即为手机sdk版本
4、查看手机型号信息
运行此命令之后,能看到product,board,brand和cpu等等的型号
5、获取序列号,获取到的序列号即为adb devices列出来的序列号
6、查看连接的设备
如果有多个设备连接,想对其中的某一设备进行操作,就需要在此命令的后面加参数
有两个真机连接了我的电脑,adb devices获取到的数据如下
进入1b71651设备的命令为:
7、查看wifi密码(需要root权限)
8、查看wifi_mac
运行此命令,93:a1:a2:91:d1:c1是手机的wifi_mac地址
9、查看后台services信息
运行结果为
10、查看系统当前内存占用,为综述
运行结果:
11、查看各进程详细内存占用和系统的内存占用有几种方法
11.1
Total PSS 信息就是你的应用真正占据的内存大小,通过这个信息,可以轻松判别手机中哪些程序占内存比较大。
11.2 查看各进程内存的另一方法 不是所有设备都支持
运行结果如下:
其中
11.3 查看设备上进程的cpu和内存占用情况
12、查看系统耗电情况
13、查看系统设置的闹钟
14、查看系统的wakelock,不合理的使用wakelock会导致系统耗电加剧
返回结果:
1、拷贝文件/目录到设备
2、从设备拷贝文件/目录,-a参数保留了文件的时间戳和模式
3、创建目录
4、列出目录下的文件和文件夹,可选参数-al可查看文件和文件夹的详细信息
5、进入文件夹
6、查看文件
7、重命名文件
8、删除文件/文件夹
9、移动文件
10、拷贝文件
11、设置文件最高读写权限
12、手机未root 查看data/data/某一app文件信息
想方便地查看data/data/目录下的一些文件,直接进入data会提示没有权限,查看的方式为进入data/data/后,运行下面的命令,就能直接进入你应用的包,可通用cp或者mv拷贝或移动到sdcard目录进行其他操作
数据库的操作和今天的主题关系不大,增删改查操作不再列举。但是平时的开发过程中只是查看数据库中某个表或者某个字段,也无需每次都pull出来之后再查看,用命令行会更加方便快捷,进入到test.db的目录后,运行如下命令
1、操作db
2、对db使用sqlite3命令后,通过.help查看各种使用指导
3、列举数据库的table名称
4、列表数据库的schema
或者