ADB搞机命令

2024/04/24 Android 共 3548 字,约 11 分钟

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

//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,继续运行

文档信息

Search

    Table of Contents