APP测试中常用到的adb命令[Windows]
1.查看当前的连接设备
adb devices
如下所示,连入了一个设备,设备名[serialNumber]:BTF4C17214004369,有时可以连入多个设备。
ps:设备名很重要哦,由于有时可以连入多个设备,所以在做一些操作命令时,可能需要指定设备
2.为命令指定目标设备
如果有多个设备/模拟器连接,则需要为命令指定目标设备。
参数 | 含义 |
---|---|
-d | 指定当前唯一通过 USB 连接的 Android 设备为命令目标 |
-e | 指定当前唯一运行的模拟器为命令目标 |
-s < serialNumber > | 指定相应 serialNumber 号的设备/模拟器为命令目标 |
在多个设备/模拟器连接的情况下较常用的是 -s 参数。如:adb -s <设备名> <命令>
安装一个apk【 helloWorld.apk 】到设备"BTF4C17214004369":即可用命令
adb -s BTF4C17214004369 install helloWorld.apk
上诉安装的前提为:helloWorld.apk文件在SDK/Tools目录下
3.获取App包名
(1)通过如下cmd命令,前提是先打开手机中你要获取包名的APP
adb shell dumpsys window | findstr mCurrentFocus
其中【com.cmic.college】是app应用的包名、后面的则是打开的activity的名称。
(2)或者你也可以查询手机中所有应用的包名
adb shell pm list packages
(3)或者你查询系所有系统应用的包名
adb shell pm list packages -s
(4)或者可以查询所有第三方应用包名
adb shell pm list packages -3
4.查看日志
(1)一般最简单常见就是【adb logcat >位置】,输出所有的日志信息,可以是电脑的位置,也可以是手机上的某个位置,我一般喜欢输出到电脑。
adb logcat >d:\log.txt 输出到电脑d盘
adb logcat -d(dump) -f(filename) + 手机路径 输出到手机或模拟器
输出的格式:
datetime:02-20 17:28:29 pid=1164 tid=3855 priority=I tag= chatty :Message
ps:详细参考https://www.jianshu.com/p/2f621e4ce2b4
(2)抓取某个app的日志,如密友圈【包名:com.cmic.college】
adb logcat | find "com.cmic.college" >d:\log.txt
(3)抓取崩溃的日志
adb logcat *:W >d:\logw.txt 显示所有优先级大于等于警告(Warning)的日志
adb logcat *:E >d:\loge.txt 显示所有优先级大于等于警告(Error)的日志
(4)下面的命令是将日志信息输出到以“日期 时间”命名的文件中
adb logcat > "%date:~0,4%-%date:~5,2%-%date:~8,2% %time:~0,2%时%time:~3,2%分%time:~6,2%.log"
说明
在windows 的cmd命令行窗口执行date命令后这个环境变量的值为
那么如下的各个操作的意义如下:
%date:~0,4% 表示从左向右指针向右偏0位,然后从指针偏移到的位置开始提取4位字符,结果是2019(年的值)
%date:~5,2% 表示指针从左向右偏移5位,然后从偏移处开始提取2位字符,结果是02(月的值)
%date:~8,2% 表示指针从左向右偏移8位,然后从偏移处开始提取2位字符,结果是21(日的值)
再来看时间time变量的值:
那么如下的各个操作的意义如下:
%time:~0,2% 表示从左向右指针向右偏0位,然后从指针偏移到的位置开始提取2位字符,结果是小时字段数值
%time:~3,2% 表示指针从左向右偏移3位,然后从偏移处开始提取2位字符,结果是分钟字段数值
%time:~6,2% 表示指针从左向右偏移6位,然后从偏移处开始提取2位字符,结果是秒字段数值
(5)IOS日志抓取可参考 APP日志的抓取方法——转载
5.查看app的启动Activity
在logcat的日子里输入"cmp="进行查询
6.获取apk的安装路径
adb shell pm path +apk包名
7.文件PULL与PUSH
adb pull <远程路径> <本地路径> 从设备上下载文件到电脑
adb push <本地路径> <远程路径> 从电脑上发送文件到设备
adb pull /storage/3.jpg d:/
adb push d:\3.jpg /storage
8.卸载与安装apk
apk包名【com.gotokeep.keep】
(1)卸载app的命令如下
adb uninstall com.gotokeep.keep 卸载 app 但保留数据和缓存文件
adb uninstall -k (apk包名)
adb shell
cd data/app
rm apk包
exit
删除系统应用:
adb remount (重新挂载系统分区,使系统分区重新可写)
adb shell
cd system/app
rm *.apk
ps:有些设备并不能直接adb remount,必须要先以root身份进入,先执行adb root,在执行adb remount
(2)安装app的命令如下
adb install -r (APK路径)
ps:-r 代表如果apk已安装,重新安装apk并保留数据和缓存文件。apk路径则可以直接将apk文件拖进cmd窗口,记得加空格。
9.清除应用数据与缓存
adb shell pm clear (apk包名)
10.启动/停止APP应用
ps:未亲测,要知道具体的软件的包名及入口才可以打开。
adb shell am start -n 包名/包名+类名(-n 类名,-a action,-d date,-m MIME-TYPE,-c category,-e 扩展数据,等)
adb shell am start -n com.helloshan.demo/.MianActivity
需要强制停止应用,则执行以下命令:
adb shell am force-stop (apk包名)
11.设备的断开/链接
如果是USB连接,直接会连接ADB,如果是想通过网络连接(有线或者无线),则需要在同一个局域网,通过IP连接,ipNo为具体的电脑ip地址。
adb connect ipNo 连接设备
adb disconnect ipNo 断开设备
12.ADB服务开启/关闭
adb start-server 开启ADB服务
adb kill-server 关闭ADB服务
13.查看adb命令帮助信息
adb help
14.发布端口
你可以设置任意的端口号,做为主机向模拟器或设备的请求端口。如:
adb forward tcp:5555 tcp:8000
15.查看bug报告
adb bugreport >d:\bugreport.txt
16.杀死某个进程:(三个步骤)
ps是查看进程命令,kill pid 你想结束的进程
adb shell
ps
kill pid
17.常用操作文件夹命令
操作文件和文件夹有时会出现权限不够,Read-only file system。就需要adb remount 操作,获得权限。
cd system/sd/data //进入系统内指定文件夹
ls //列表显示当前文件夹内容
mkdir xxx //创建xxx的文件夹
rm -r xxx //删除名字为xxx的文件夹及其里面的所有文件
rm xxx //删除文件xxx
rmdir xxx //删除xxx的文件夹
最后推荐一个超全命令使用的链接【ADB 用法大全】