adb命令调试app、系统的时候会经常用到,每次查了再用,用了又忘,这里做个归纳记录,方便以后翻阅使用。
一、am 命令
am = 用命令行操作三大组件。
1.1 启动Activity
powershell
1、am start -n 包名/Activity类名 显示启动
示例:am start -n com.example.app/.MainActivity
常用参数:
-n 声明组件名称
-a 指定 action
-d 指定 data(URI)
--e 传递参数
2、传action隐式启动
示例:
am start -a android.intent.action.VIEW -d http://www.baidu.com
--ez传布尔值名称为show,--es传String名称为type。
am broadcast -a com.htc.DISPLAY_SETTINGS --ez show true --es type "pq_eq"
1.2 启动Service
powershell
1、am startservice -n 包名/Service类名
Android 8+ 推荐:
am start-foreground-service -n 包名/Service类名
示例:
am start-foreground-service -n com.example.app/.MyForegroundService
1.3 发送广播
powershell
1、am broadcast -a action
示例:
am broadcast -a com.htc.INITANGLE
2、带参数:
am broadcast -a com.test.ACTION --es key value
常用参数:
--es:String
--ei:int
--ez:boolean
3、静态注册广播需指定接收者,不然无法收到广播:
am broadcast -a com.test.ACTION -n com.example.app/.MyReceiver
1.4 其它
powershell
1、强制停止应用:
am force-stop 包名
2、杀进程:
am kill 包名
和 force-stop 区别:
kill:只是杀进程
force-stop:还会禁止后台启动
二、pm 命令
pm命令用来安装、卸载、编译apk。
2.1 安装apk
powershell
pm install app.apk
-r # 覆盖安装 会保留信息(如登录状态、本地缓存、设置等)
-s # 安装到系统分区(需权限)
-d # 允许降级安装
-g # 安装时自动授予权限
2.2 卸载apk
powershell
pm uninstall 包名
保留数据:
pm uninstall -k 包名
2.3 查看已安装包
powershell
pm list packages
pm list packages -3 # 第三方应用
pm list packages -s # 系统应用
pm list packages -f # 显示apk路径
2.4 启用 / 禁用组件
powershell
1、禁用应用:
pm disable 包名
pm disable-user 包名
2、启用应用:
pm enable 包名
3、禁用某个组件(Activity / Service / Receiver):
pm disable 包名/组件名
pm disable com.example.app/.MainActivity
4、启用组件:
pm enable 包名/组件名
2.5 权限相关
powershell
1、授予权限:
pm grant 包名 权限
pm grant com.example.app android.permission.CAMERA
2、撤销权限:
pm revoke 包名 权限
2.6 应用信息查询
powershell
1、查看 APK 路径:
pm path 包名
2、查看详细信息:
pm dump 包名
打印信息包括:组件 权限 签名 安装状态
2.7 DEX / 编译相关
powershell
1、清理编译缓存:
pm compile -m speed-profile -f 包名
2、强制编译:
pm compile -m speed -f 包名
-m(mode)指定编译模式
-f 参数 强制重新编译
2.8 多用户相关
powershell
1、列出设备上所有现有的用户 ID 和名称:
pm list users
2、将指定的 APK 文件安装到特定用户的空间下:
pm install --user 4c13 app.apk
三、wm 命令
wm 是 Window Manager(窗口管理器) 的缩写命令,它主要用于控制和管理当前用户的窗口显示设置,比如修改屏幕分辨率、屏幕密度(DPI)等。
3.1 修改屏幕密度 (DPI) ------ 最常用
powershell
1、查看当前密度:
wm density
2、修改密度:
wm density 480
3、恢复默认密度:
wm density reset
3.2 修改屏幕分辨率
powershell
1、查看当前分辨率:
wm size
2、修改分辨率:
wm size 800x480
3、恢复原始分辨率:
wm size reset
四、dumpsys
dumpsys 是 Android 系统中一个功能极其强大的诊断工具,它可以转储(dump)系统服务的当前状态信息,为开发者和测试人员提供了深入了解系统内部运行机制的窗口。简单说就是用来看 系统服务的实时状态信息。
4.1 内存、CPU分析 (meminfo)
powershell
1、查看所有进程内存占用:
dumpsys meminfo
2、查找指定应用内存占用:
dumpsys meminfo <包名>
3、查看 CPU 使用情况:
dumpsys cpuinfo
4.2 活动栈分析 (activity)
用于查看 Activity Manager Service (AMS) 的状态,了解应用的 Activity、任务栈和进程信息。
powershell
1、查看当前前台top Activity:下面两个都行
dumpsys activity activities | grep -E "mCurrentFocus|mFocusedActivity"
dumpsys activity top | grep ACTIVITY
2、查看指定应用的所有 Activity 状态:
dumpsys activity a <包名>
3、查看指定应用的所有 Service 状态:
dumpsys activity s <包名>
4、查看指定应用的进程状态:
dumpsys activity p <包名>
4.3 窗口分析 (window)
用于查看 Window Manager Service (WMS) 的状态,获取窗口层级、尺寸、焦点以及屏幕特性(如刘海屏)等信息。
powershell
1、查看所有窗口信息:
dumspys window
2、获取当前焦点窗口(最常用):
dumpsys window | grep mCurrentFocus
3、查找与屏幕"刘海"或"挖孔"相关的信息:
dumpsys window | grep -i cutout
五、其它常用命令
powershell
1、推送文件到设备目录:
adb push G:\xin.ac3 /sdcard/
2、从设备拷贝文件:
adb pull /sdcard/*txt
3、安装apk:
adb install *.apk
可带参数:
-r # 覆盖安装
-s # 安装到系统分区(需权限)
-d # 允许降级安装
-g # 安装时自动授予权限
4、卸载apk:
adb uninstall *.apk
5、打开layout布局调试开关:
这个很好用,经常用来看布局和焦点
setprop debug.layout true
6、设置和读取系统属性
setprop ***.***.***
getprop ***.***.***
7、top 用于实时监控系统进程资源占用
-m <数量> 只显示前 N 个进程 快速查看占用资源最高的几个"元凶"
-n <次数> 刷新 N 次后退出 用于脚本采集数据,避免命令一直卡着
-d <秒数> 设置刷新间隔 比如 -d 1 表示每秒刷新一次
-s <列名> 按指定列排序 比如按内存使用量排序 (-s RSS)
CPU:按 CPU 占用排序(默认)
RSS:按物理内存占用排序(最常用)
VSS:按虚拟内存占用排序
THR:按线程数排序
还没写完,后续有待补充。2026/4/22。