adb 一些常用的命令介绍

ADB(Android Debug Bridge)是一个通用命令行工具, 也是Android软件测试开发工作者常用的调试工具,

ADB可以用来安装卸载软件、管理安卓系统软件、启动测试、抓取操作日志等。

同时因为安卓就是根据Linux开发的。所以adb shell下的常用命令与linux一样,比如ls/cd/mkdir等

0.显示adb的版本

adb version

1.显示系统中全部设备

adb devices

图片[1] - adb 一些常用的命令介绍 - 正则时光

2.开启或关闭ADB服务

开启:adb start-server 关闭adb kill-server

3.连接设备

adb connect IP

如果是USB连接,直接会连接ADB,如果是想通过网络连接(有线或者无线),则需要在同一个局域网,通过IP连接。上面192.168.1.61替换成想要连接设备的IP即可。5555是模拟器的端口号

图片[2] - adb 一些常用的命令介绍 - 正则时光

断开设备:adb disconnect IP

4.安装、卸载软件包

安装软件:adb install -r (APK路径)

-g 安装时获取所有需要的权限

-r 代表如果apk已安装,重新安装apk并保留数据和缓存文件。apk路径则可以直接将apk文件拖进cmd窗口,记得加空

格。

图片[3] - adb 一些常用的命令介绍 - 正则时光

卸载软件:adb uninstall (apk包名)

如果卸载 app 但需要保留数据和缓存文件:adb uninstall -k (apk包名)

5.获取软件包名

列出手机装的所有app的包名:

adb shell pm list packages

列出系统应用的所有包名:

adb shell pm list packages -s

列出除了系统应用的第三方应用包名:

adb shell pm list packages -3

显示当前打开的软件包名(如右图):

Windows:adb shell dumpsys window | findstr mCurrentFocus(需要打开目标软件)

Mac/Linux:adb shell dumpsys window | grep mCurrentFocus

图片[4] - adb 一些常用的命令介绍 - 正则时光

6.清除应用数据与缓存

adb shell pm clear (apk包名)

7.启动、停止应用

启动:adb shell am start 包名/Activity名

停止:adb shell am force-stop (apk包名)

8.获取APP日志

格式:adb logcat >指定路径

adb logcat -t 5 #输出最近5行的日志数据

举例:

① adb logcat >C:\Users\18810\Desktop\1.txt

② 执行完后Ctrl+C结束日志获取

③ 查看获取的1.txt文档即可

9.获取APP启动时间

格式:adb shell am start -W 包名/activity名

常见参数:

-S:表示每次启动前先强行停止

-R:表示重复测试次数

常见的三个指标

Ø ThisTime: 当前activity的时间。

Ø TotalTime:应用的启动时间,包括创建进程、App初始化、Activity初始化到界面显示。

Ø WaitTime:前一个应用activity pause的时间+TotalTime

10.获取内存

格式:adb shell dumpsys meminfo <包名>

(1) Native/Dalvik 的 Heap 信息

如果发现这个值一直增长,则代表程序可能出现了内存泄漏(Out of memary)。

(2) Total 的 PSS 信息

这个值是应用真正占据的内存大小,通过这个信息,可以轻松判别手

机中哪些程序占内存比较大

11.查看CPU占用情况

1.格式:adb shell dumpsys cpuinfo <包名>

adb shell top -m 10 -s cpu(不建议)

(-m显示最大数量,-s 按指定行排序)

参数含义:

PID : 应用程序ID

S : 进程的状态(S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数)

#THR : 程序当前所用的线程数

VSS : 虚拟耗用内存(包含共享库占用的内存)

RSS : 实际使用物理内存(包含共享库占用的内存)

PCY : 前台(fg)和后台(bg)进程

UID : 用户身份ID

Name : 应用程序名称

图片[5] - adb 一些常用的命令介绍 - 正则时光

12.获取APP使用流量

1.获取userId(返回数据为userId=)

adb shell dumpsys package 包名 | findstr userId

2.获取上行流量(返回数据单位bytes)

adb shell cat proc/uid_stat/userId/tcp_snd

3.获取下行流量(返回数据单位bytes)

adb shell cat proc/uid_stat/userId/tcp_rcv

图片[6] - adb 一些常用的命令介绍 - 正则时光

13.Monkey测试

Monkey测试

语法:adb shell monkey -p 包名 -v(日志) 次数 >c:\日志.txt

说明:

-p 指定包名 (所有命令都在此包内执行,如不指定,则在整个系统内执行)

-v log详细程度(最高支持’-v -v -v’最详细)

–throttle 单步延时(每步操作间隔,单位毫秒)

–pct-touch 点击事件

举例:

不控制事件:adb shell monkey –p com.tpshop.malls –v –v 1000 >C:\Users\18810\Desktop\monkey.txt

控制事件:adb shell monkey –p com.tpshop.malls –throttle 100 –pct-touch 50 –pct-motion 50 –v –v

1000 >C:\Users\18810\Desktop\monkey.txt

monkey命令参数拓展

分类参数释义
基础参数-v指定反馈信息级别(信息级别就是日志的详细程度),总共分3个级别。最高级别为-v -v -v
-S指定monkey测试的序列
-p指定一个或多个包(Package,即App)
– throttle指定用户操作(即事件)间的时延,单位是毫秒
事件类型–pct-touch调整触摸事件的百分比(触摸事件是一个down-up事件,它发生在屏幕上的某单一位置)
–pct-motion调整动作事件的百分比(动作事件由屏幕上某处的一个down事件、一系列的伪随机事件
和一个up事件组成)
–pct-trackball调整轨迹事件的百分比(轨迹事件由一个或几个随机的移动组成,有时还伴随有点击)
–pct-syskeys调整“系统”按键事件的百分比(这些按键通常被保留,由系统使用,如Home、Back、
Start Call、End Call及音量控制键)
–pct-anyevent调整其它类型事件的百分比。它包罗了所有其它类型的事件,如:按键、其它不常用的
设备按钮、等等
调试选项–ignore–crashes应用程序崩溃
–ignore-timeouts无响应ANR
–igone-security-
exceptions
许可证书崩溃
–kill-process-after-error发生错误停止运行并保持当前状态
–montitor-native- crashes监视并报告Androids系统本地代码的崩溃事件

Monkey常用命令参数

14.文件传输

adb pull (文件路径) (想要pull的路径) #将 Android 设备上的文件或者文件夹复制到本地例如复制 test 下的 a.txt 文件到d 盘:adb pull test/a.txt d:

adb push (文件路径) (想要push的路径) #将电脑上的文件或者文件夹传到安卓设备例如将 test 下的 a.txt 文件传到安卓设备下的d 盘:adb push test/a.txt d:

15.查看app路径

adb shell pm path <package_name>

16.获取文件权限

Read-only file system表示只有可读权限。想要向push文件到/system中,需要获取/system文件的读写权限。于是,做如下操作输入命令:

1: adb root(前提是:手机root了)

2:adb remount,重新挂载系统分区(前提是:adb root)

3:adb shell “mount -o rw,remount /system”

执行完后,没什么反应就是成功了。再输入mount,就可以看到权限情况

图片[7] - adb 一些常用的命令介绍 - 正则时光
© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享