ADB搞机常用命令记录
ADB搞机技术
1.查看设备
设备列表
adb devices
参数 | 含义 |
---|---|
-d | 指定当前唯一通过 USB 连接的 Android 设备为命令目标 |
-e | 指定当前唯一运行的模拟器为命令目标 |
-s | 指定相应 serialNumber 号的设备/模拟器为命令目标 |
安装应用到指定设备
adb -s xxx install x.apk
adb -s 192.168.31.12:6666 install a.apk
启动adb服务
adb start-server
关闭adb服务
adb kill-server
查看adb版本
adb version
2.应用管理
查看所有包名
adb shell pm list package
可在adb shell pm list package后面加参数,进行过滤查看:
参数 | 显示内容 |
---|---|
无 | 查看所有应用 |
-f | 显示应用关联的 apk 文件 |
-d | 只显示 disabled 的应用 |
-e | 只显示 enabled 的应用 |
-s | 只显示系统应用 |
-3 | 只显示第三方应用 |
-i | 显示应用的 installer |
-u | 包含已卸载应用 |
查看第三方软件包名
adb shell pm list package -3
模糊查找应用
查找带有hevc字符的应用
adb shell pm list packages hevc
也可以使用grep或者find来查找
grep命令(可能出现命令不支持)
adb shell pm list packages | grep hevc
find命令,注意find后面需要用“”来引出查找的关键字符
adb shell pm list packages | find “hevc”
3.安装APK
参数 | 含义 |
---|---|
-l | 将应用安装到保护目录 /mnt/asec |
-r | 允许覆盖安装 |
-t | 允许安装 AndroidManifest.xml 里 application 指定 android:testOnly=“true” 的应用 |
-s | 将应用安装到 sdcard |
-d | 允许降级覆盖安装 |
-g | 授予所有运行时权限 |
安装指定应用
adb install a.apk
adb install -g <文件路径\apk>:授权/获取权限,安装软件时把所有权限都打开
4.卸载APK
卸载应用
// 卸载应用的命令(包名)
adb uninstall com.xxx.xxx
adb uninstall -k com.hevc.hevcandroid //-k参数可选,代表卸载应用但保留数据和缓存目录
adb shell pm uninstall -k <包名>:虽然把此应用卸载,但仍保存此应用的数据和缓存包名>
adb shell am force-stop <包名>:强制退出该应用/app包名>
5.查看设备信息
查看测试机cpu信息
adb shell dumpsys cpuinfo
查看测试机内存信息
adb shell dumpsys meminfo
查看测试机所有包信息
adb shell dumpsys activity
查看设备型号
adb shell getprop ro.product.model
查看电池状态
adb shell dumpsys battery
查看设备分辨率
adb shell wm size
查看屏幕密度
adb shell wm density
查看屏参数
adb shell dumpsys window displays
查看android id
adb shell settings get secure android_id
查看android 系统版本
adb shell getprop ro.build.version.release
查看前台应用包名
adb shell dumpsys activity |find “mResumedActivity”
查看前台应用包名,必须先启动app,适用于Android 8.0以上
获取手机存储信息
adb shell df
6.日志查看
日志查看
控制台直接打印
adb logcat
没有添加任何过滤,代表打印所有日志,测试意义不大
指定打印某个应用的日志
adb shell pm list packages tenc
模糊查询带有tenc字符的应用程序
将日志导出到指定的路径
adb logcat > D:\log.txt
adb shell logcat -c:清理现有日志 adb shell logcat -v time :输出日志,信息输出在控制台 adb shell logcat -v time > <存放路径\log.txt>:输出日志并保存在本地文件 Ctrl+C:终止日志抓取 adb shell logcat -v time *:E > <存放路径\log.txt>:打印级别为Error的信息 日志的等级: -v:Verbse(明细) -d:Debug(调试) -i:Info(信息) -w:Warn(警告) -e:Error(错误) -f:Fatal(严重错误) 抓取日志的步骤先输入命令启动日志,然后操作 App,复现 bug,再 ctrl+c 停止日志,分析本地保存的文件。 :日志是记录手机系统在运行app时有什么异常的事件 EXCEPTION 也可以把更详细得Anr日志拉取出来:adb shell pull /data/anr/traces.txt <存放路径>存放路径>
7.文件操作
复制文件到Android设备
adb push
adb push <本地路径\文件或文件夹> <手机端路径>:把本地(pc机)的文件或文件夹复制到设备(手机)手机端路径>
注意点1:pc机路径与Android机路径,分隔符是不同的。
注意点2:复制失败,大概率是无权限。可先使用上面介绍过的两个命令:adb root;adb remount。在使用 adb push 命令
**adb pull <手机端路径/文件或文件夹>
8.WIFI功能
没有系统原生设置应用又需要调试WiFi功能时,可以使用如下指令来验证WiFi相关功能
最常用的就是 svc wifi enable/disable,再使用wpa_supplicant/wpa_cli来验证,但对于AP功能就没办法验证了,其实Android有组很强大的shell指令集,记录平时使用的WiFi相关指令
查看WiFi所有指令以及参数
adb shell cmd wifi -h
打开/关闭WLAN
adb shell cmd wifi set-wifi-enabled enabled
adb shell cmd wifi set-wifi-enabled disabled
扫描WiFi
扫描
adb shell cmd wifi start-scan
查看扫描结果
adb shell cmd wifi list-scan-results
连接WiFi
adb shell cmd wifi connect-network TP-LINK_5G_0FE1 wpa2 12345678
//TP-LINK_5G_0FE1 连接WiFi名称
//wpa2 加密方式
//12345678 密码
查看WiFi状态
adb shell cmd wifi status
打开/关闭热点
adb shell cmd wifi start-softap ap_ssidxx wpa2 12345678 -b5
// ap_ssidxx 热点名称
// wpa2 加密方式
//12345678 密码
//-b5 5G频段
adb shell cmd wifi stop-softap
其他可以指令可以使用adb shell cmd wifi -h查看,如果需要连接WiFi以外的相关指令可以使用adb shell cmd -l(小写L)
Monkey 进行压力测试
monkey是android自带系统自带的程序,可以生成伪随机用户事件来模拟单击、触摸、手势等操作,可以对正在开发中的程序进行随机压力测试。
简单用法
// 命令,表示向 com.tencent.mm 程序发送 500 个伪随机事件,并且将日志指定位置保存 adb shell monkey -p com.tencent.mm -v 500 > 日志路径.txt -v 是提升日志级别,最高可加三个-v //示例输出 bash arg: -p bash arg: com.tencent.mm bash arg: -v bash arg: 500 args: [-p, com.tencent.mm, -v, 500] arg: “-p” arg: “com.tencent.mm” arg: “-v” arg: “500” data=“com.tencent.mm”
参数 | 含义 |
---|---|
-p 包名 | 代表对该程序进行压测 |
-throttle 300 | 代表压测中延迟300毫秒 |
-pct-touch 50 | 代表触摸时间占50% |
-pct-motion 100 | 代表motion(手势)事件占比 |
-pct-trackball | 代表滚动事件占比 |
-ignore-crashes | 代表monkey运行时忽略crashes事件,继续运行 |
-ignore-timeouts | 代表monkey运行时忽略ANR,继续运行 |
文档信息
- 本文作者:Nattevak
- 本文链接:https://HLuKT.github.io/2024/04/24/adb%E6%90%9E%E6%9C%BA%E5%91%BD%E4%BB%A4/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)