adb/ADB 常见命令汇总

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。

相关推荐
bitt TRES2 小时前
CentOS7安装Mysql5.7(ARM64架构)
adb·架构
蜡台4 小时前
Ubuntu 24.04 系统版本 安装 MySQL 8 及相关配置
mysql·ubuntu·adb
NiKick15 小时前
MySql中的事务、MySql事务详解、MySql隔离级别
数据库·mysql·adb
ATCH IERV18 小时前
MySQL数据库误删恢复_mysql 数据 误删
数据库·mysql·adb
m0_7375393720 小时前
MYSQL源码安装和备份
数据库·mysql·adb
xxjj998a21 小时前
MySQL无法连接到本地localhost的解决办法2024.11.8
数据库·mysql·adb
历程里程碑1 天前
MySQL视图:虚拟表的实战技巧
java·开发语言·数据库·c++·sql·mysql·adb
Caspian Wren1 天前
通过Canal、Canal adapter将MySQL数据同步到ES
mysql·elasticsearch·adb
iNgs IMAC1 天前
MySQL无法连接到本地localhost的解决办法2024.11.8
数据库·mysql·adb