常用 adb命令

1,103 阅读4分钟

一、ADB工具介绍

  • ADB是一个通用命令行工具,也是Android软件测试开发工作者常用的调试工具
  • ADB可以用来安装卸载软件、管理安卓系统软件、启动测试、抓取操作日志等

二、ADB环境准备

  • ADK下载地址:tools.android-studio.org/index.php/s…
  • ADB下载地址:pan.baidu.com/s/1R-XimjkE… 提取码:3hnt
    1、安装安卓SDK
    2、安装ADB
    3、配置环境变量(计算机右键-属性-高级系统设置-环境变量-新增系统变量)
    ①配置SDK变量
    ②配置Path路径
    4、启动命令行,运行adb,检查安装结果
    未安装时:

iShot2021-10-24 17.00.30.png 已安装成功:

iShot2021-10-24 17.00.37.png

  • 显示系统中全部设备 1、adb devices
    这个命令是查看当前连接的设备,连接到计算机的Android设备或者模拟器将会列出显示

iShot2021-10-24 17.04.50.png

  • 开启或关闭adb服务
    开启:adb start-server
    关闭:abd kill-server

  • 连接设备 adb connect IP(通过网络连接,需要在同一个局域网,通过IP连接,例如192.168.1.61)

iShot2021-10-24 17.09.30.png 断开设备:adb disconnerct IP

如果用数据线连接,直接连,在手机上点击授权即可,然后打开终端,输入adb devices 就OK

  • 安装、卸载软件包 1、安装软件:adb install -r (APK路径)
    注释:APK路径,可以直接拖拽到终端即可
    -r代表如果apk已安装,重新安装apk并保留数据和缓存文件。
    例如:adb install com.achievo.vipshop(安装唯品会)

adb install -t 允许测试包
adb install -d 允许进行将见状,也就是安装的比手机上带的版本低

adb install -g 为应用程序授予所有运行时的权限

2、卸载软件:adb uninstall (APK包名)
例如:adb uninstall com.achievo.vipshop(卸载唯品会)

  • 获取软件包名
    1、列出手机装的手游app的包名:adb shell pm list packages
    2、列出系统应用的所有包名:adb shell pm list packages -s
    3、列出除了系统应用的第三方应用包名:adb shell pm list packages -3
    4、显示当前打开的软件包名:
    windows:adb shell dumpays window | findstr mCurrentFocus(需要打开目标软件)

Mac/Linux:adb shell dumpsys window | grep mCurrentFocus

  • 清除应用数据与缓存:adb shell pm clesr (apk包名)

  • 启动、停止应用
    1、启动:adb shell am start 包名/Activity名
    2、停止:adb shell am force-stop (apk 包名)

  • pull、push 1、从手机pull文件到电脑:adb pull /sdcard/DCIM/Camera/ /Users/mac/Desktop/xxx
    2、把电脑资料push到手机目录: adb push /Users/mac/Desktop/abc.xlsx /sdcard

  • 获取app日志 1、格式:adb logcat > 指定路径
    2、举例:
    adb logcat >C:\Users\18810\Desktop\1.txt
    ②执行完成后Ctrl+C结束日志获取
    ③查看获取的1.txt文档即可

  • 获取app启动数据 1、格式:adb shell am start -W 包名/activity名
    2、例如:adb shell am start -W com.achievo.vipshop/com.achievo.vipshop.activity.LodingActivity 或者adb shell am start -W com.achievo.vipshop/.activity.LodingActivity
    3、常见参数:
    -S:表示每次启动前先强行停止
    -R:表示重复测试次数
    4、常见的三个指标:
    ThisTime:当前activity的时间
    TotalTime:应用的启动时间,包括创建进程、App初始化、Activity初始划到界面显示
    WaitTime:前一个应用activity pause的时间+TotalTime
    举例:
    adb shell am start -S -R 5 -W com.tpshop.malls/com.tpshop.malls.SplashActivity

  • 获取内存 1、格式:adb shell dumpsys meminfo 包名
    2、Native/Dalvik的Heap信息
    如果发现这个值一直增长,则代表程序可能出现了内存泄漏(Out of memary)
    3、Total的PSS信息
    这个值是应用真正占据的内存大小,通过这个信息,可以轻松判别手机中哪些程序占内存比较大

  • 查看CPU占用情况 1、格式:adb shell top -m 10 -s cpu
    (-m显示最大数量,-s按指定行排序)

iShot2021-10-24 18.50.14.png 参数含义:
PID:应用程序ID
S:进程的状态(S表示睡眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值时负数)
#THR:程序当前所用的线程数
VSS:虚拟耗用内存(包括共享库占用的内存)
RSS:实际使用物理内存(包含共享库占用的内存)
PCY:前台(fg)和后台(bg)进程
UID:用户身份ID
Name:应用程序名称

  • 获取app使用流量 iShot2021-10-24 19.13.38.png 1、获取userld(返回数据为userld=)
    adb shell dumpsys package 包名 | findstr userld

2、获取上行流量(返回数据单位bytes)
adb shell cat proc/uid_stat/userld/tcp_snd

3、获取下行流量(返回数据单位bytes)
adb shell cat proc/uid_stat/userld/tcp_rcv

  • Monkey测试
    1、语法:adb shell monkey -p 包名 -v(日志) 次数 >C:\日志.txt
    2、说明:
    -P:指定包名(所有命令都在此包内执行,如不指定,则在整个系统内执行)
    -V log详细程度(最高支持‘-v -v -v’最详细)
    --throttle 单步延时(每步操作间隔,单位毫秒)
    --pct-touch 点击事件

举例:
不控制事件:
adb shell monkey -p com.tpshop.malls -v -v -v 1000 >C:\User\18810\Desktop\monkey.txt

控制事件:
adb shell monkey -p com.tpshop.malls --throttle 100 --pct-touch 50 --pct-motion 50 -v -v -v 1000 >C:Users\18810\Desktop\monkey.txt

  • monkey 命令参数拓展
    iShot2021-10-24 19.22.59.png