GKLBB

当你经历了暴风雨,你也就成为了暴风雨

导航

软件运维 --- adb shell 命令

分类与注解

1. 应用管理 (Application Management)

主要用于安装、卸载、控制应用以及查询应用信息。

 
命令注解
adb shell am force-stop <package> 强制停止指定包名的应用,终止其所有进程。
adb shell am kill <package> 杀死指定包名的应用后台进程,但可能不会像force-stop那样彻底。
adb shell am kill-all 杀死所有后台进程。
adb shell pm clear <package> 清除指定应用的所有数据和缓存。
adb shell pm clear --cache-only <package> 仅清除指定应用的缓存,不清除用户数据。
adb shell pm clear --user <user_id> <package> 为指定用户清除应用的数据和缓存。
adb shell pm disable <package/component> 禁用一个应用或组件(如Activity),系统应用常用。
adb shell pm disable-user --user <user_id> <package> 为指定用户禁用应用。
adb shell pm disable-user <package> 为当前用户禁用应用。
adb shell pm dump <package> 转储指定应用的详细状态信息。
adb shell pm enable <package/component> 启用一个被禁用的应用或组件。
adb shell pm grant <package> <permission> 授予某个应用一项权限。
adb shell pm hide <package> 隐藏一个应用(主要用于设备策略控制器)。
adb shell pm install <apk_path> 安装一个APK文件。
adb shell pm install --abi <apk_path> 指定安装APK的ABI(应用二进制接口)。
adb shell pm install --dont-kill <apk_path> 安装时不终止正在运行的应用(用于增量安装)。
adb shell pm install --full <apk_path> 执行完整安装,即使应用已存在。
adb shell pm install --user <user_id> <apk_path> 为指定用户安装应用。
adb shell pm install -d <apk_path> 允许安装版本降级的APK。
adb shell pm install -g <apk_path> 安装时授予所有运行时权限。
adb shell pm install -t <apk_path> 允许安装测试APK。
adb shell pm install-abandon <session_id> 放弃一个多包安装会话。
adb shell pm install-commit <session_id> 提交一个多包安装会话。
adb shell pm install-create 创建一个新的多包安装会话,返回会话ID。
adb shell pm install-existing <package> 为当前用户安装一个已存在但未安装的软件包。
adb shell pm install-remove <session_id> <split_name> 从安装会话中移除一个APK拆分包。
adb shell pm install-write <size> <session_id> <split_name> <split_path> 将APK拆分包写入安装会话。
adb shell pm list packages 列出设备上所有已安装的包名。
adb shell pm list packages -3 只列出第三方应用。
adb shell pm list packages -a 列出所有应用,包括系统和非系统。
adb shell pm list packages -d 只列出被禁用的应用。
adb shell pm list packages -e 只列出被启用的应用。
adb shell pm list packages -f 列出包名及其关联的APK文件路径。
adb shell pm list packages -i 列出包名及其安装程序。
adb shell pm list packages -s 只列出系统应用。
adb shell pm list packages -u 列出包名,包括已卸载但仍有数据的应用。
adb shell pm list packages --show-versioncode 列出包名并显示版本代码。
adb shell pm path <package> 显示指定应用APK文件的完整路径。
adb shell pm revoke <package> <permission> 撤销已授予某个应用的权限。
adb shell pm suspend <package> 挂起(暂停)指定应用,使其不可用但未卸载。
adb shell pm unhide <package> 取消隐藏一个应用。
adb shell pm uninstall <package> 卸载一个应用。
adb shell pm uninstall --user <user_id> <package> 为指定用户卸载应用。
adb shell pm uninstall -k <package> 卸载应用但保留数据和缓存。
adb shell pm uninstall-system-updates <package> 卸载系统应用的更新,还原到出厂版本。
adb shell pm unsuspend <package> 取消挂起(恢复)一个被挂起的应用。

2. 系统信息与调试 (System Info & Debugging)

用于获取设备状态、系统信息、调试服务等。

 
命令注解
adb shell dumpsys activity 转储Activity管理器的详细信息(任务、栈、活动等)。
adb shell dumpsys battery 显示电池状态信息(电量、状态、健康度等)。
adb shell dumpsys battery set level <n> 模拟设置电池电量百分比(需要root)。
adb shell dumpsys battery set status <n> 模拟设置电池状态(如2为充电,需要root)。
adb shell dumpsys display 转储显示系统的相关信息。
adb shell getenforce 显示当前SELinux执行模式(Enforcing或Permissive)。
adb shell service list 列出系统所有的服务。
adb shell top 动态显示CPU占用率最高的进程。
adb shell top -n <number> 刷新指定次数后退出top命令。
adb shell dmesg 显示内核环缓冲区消息,用于诊断内核启动和驱动问题。
adb shell netstat 显示网络连接、路由表、接口统计等信息。
adb shell ps 显示当前正在运行的进程快照。
adb shell whoami 显示当前shell的用户名。

3. 文件操作 (File Operations)

用于浏览、操作设备上的文件。

 
命令注解
adb shell cat <file_path> 连接文件并打印到标准输出(查看文件内容)。
adb shell cd - 切换到上一个工作目录。
adb shell cd .. 切换到上级目录。
adb shell cd / 切换到根目录。
adb shell cd <directory_path> 切换到指定目录。
adb shell cd ~ 切换到当前用户的家目录。
adb shell cp <source> <dest> 复制文件。
adb shell cp -r <source> <dest> 递归复制目录及其内容。
adb shell ls 列出当前目录下的文件和目录。
adb shell ls -R 递归列出所有子目录的内容。
adb shell ls -s 列出文件及大小(以块为单位)。
adb shell mkdir <dir_path> 创建一个新目录。
adb shell mv <from> <to> 移动或重命名文件/目录。
adb shell rm <file_path> 删除文件。
adb shell rm -r <file_path> 递归删除目录及其所有内容(慎用)。
adb shell file <file_path> 检测文件类型。
adb shell pwd 打印当前工作目录的路径。

4. 日志 (Logging)

用于查看和管理系统日志。

 
命令注解
adb shell logcat 打印系统日志。
adb shell logcat -c 清除(clear)整个日志缓冲区。
adb shell logcat -g 打印日志缓冲区的大小。
adb shell logcat -G <size> 设置日志缓冲区的大小(如16M)。

5. 设备控制 (Device Control)

用于控制设备状态,如重启、电源模式等。

 
命令注解
adb shell reboot 重启设备到系统。
adb shell reboot -p 关机(power off)。
adb shell reboot bootloader 重启到Bootloader模式( fastboot模式)。
adb shell reboot recovery 重启到Recovery模式。
adb shell reboot fastboot 重启到 Fastboot 模式 (此命令可能在某些设备上无效,reboot bootloader 更通用)。

6. 窗口管理 (Window Management)

用于管理屏幕显示属性。

 
命令注解
adb shell wm density 显示当前屏幕的密度(DPI)。
adb shell wm density reset 重置屏幕密度为默认值。
adb shell wm size 显示当前屏幕的物理分辨率。
adb shell wm size reset 重置屏幕分辨率为默认值。
adb shell cmd uimode night no 强制关闭夜间模式。
adb shell cmd uimode night yes 强制开启夜间模式。

7. 其他实用命令 (Other Utilities)

杂项命令,用于文本处理、网络测试等。

 
命令注解
adb shell clear 清空终端屏幕。
adb shell date 显示或设置系统日期和时间。
adb shell df -h /system 以可读格式显示/system分区的磁盘空间使用情况。
adb shell du -h 以可读格式显示当前目录的磁盘使用情况。
adb shell du -sh /system/* 汇总显示/system目录下各子项的大小。
adb shell echo <message> 回显一段文本。
adb shell exit 退出当前shell会话。
adb shell grep <pattern> 搜索文本中匹配指定模式的行。
adb shell iptables -L 列出所有防火墙规则。
adb shell kill <pid> 根据进程ID向进程发送信号以终止它。
adb shell ping <host> 测试到网络主机的连通性。
adb shell sleep <second> 延迟(睡眠)指定的秒数。
adb shell sync 将内存中缓存的数据同步到磁盘(刷写缓冲区)。
adb shell update (此命令通常不存在或不是标准命令,可能用于某些定制系统进行更新)

 

 

ADB Shell 的命令宇宙非常庞大,因为它本质上是一个 Linux Shell,可以访问 Android 的特定工具和 Linux 通用工具。

我将为您提供一个扩展的分类和注解,涵盖常见的 ADB Shell 命令,包括您未列出但极其重要的命令。


ADB Shell 命令大全(分类与注解)

1. 应用管理与活动 (Application & Activity Management)

用于安装、控制、调试应用和活动(Activity)。

 
命令注解
am start -n <package>/<activity> 启动一个应用的特定 Activity(核心调试命令)。
am start -a <action> -c <category> ... 通过 Intent(动作、类别等)启动组件。
am startservice -n <package>/<service> 启动一个服务的特定 Service。
am broadcast -a <action> 发送一个广播 Intent。
am force-stop <package> 强制停止应用及其所有进程。
am kill <package> 杀死应用的后台进程(不如 force-stop 彻底)。
am kill-all 杀死所有后台进程。
am monitor 监听应用的崩溃(ANR)或启动。
pm install <apk_path> 安装 APK。
pm uninstall <package> 卸载应用。
pm list packages [-f/-s/-3] 列出应用包名(-f 显示路径,-s 系统应用,-3 第三方应用)。
pm path <package> 显示应用 APK 的安装路径。
pm clear <package> 清除应用的所有数据。
pm grant/revoke <package> <permission> 授予/撤销应用权限。
pm disable/enable <package/component> 禁用/启用应用或组件(如 Activity)。
pm hide/unhide <package> 隐藏/取消隐藏应用(需设备管理员权限)。
pm create-user <user_name> 创建多用户。

2. 系统信息与调试 (System Info & Debugging)

获取设备状态、系统属性、服务信息和进行高级调试。

 
命令注解
dumpsys 万能系统信息工具。可加参数获取特定服务信息:
dumpsys activity 转储 Activity 管理器信息(任务、栈、活动)。
dumpsys package <package> 转储特定包的详细信息(权限、路径、版本等)。
dumpsys meminfo 显示内存使用情况(可加包名或 pid)。
dumpsys cpuinfo 显示 CPU 使用情况。
dumpsys battery 显示电池状态信息。
dumpsys battery set level <n> 模拟电池电量(需 root)。
dumpsys display 显示显示系统信息。
dumpsys notification 显示通知信息。
dumpsys wifi 显示 Wi-Fi 状态信息。
getprop 获取系统属性。
getprop ro.build.version.release 获取 Android 系统版本。
getprop ro.product.model 获取设备型号。
getprop ro.serialno 获取设备序列号。
setprop <key> <value> 设置系统属性(通常需要 root)。
service list 列出系统所有的 Binder 服务。
ps 显示当前进程快照。
ps -A 或 ps -e 显示所有进程。
top 动态显示 CPU 占用最高的进程。
cat /proc/cpuinfo 查看 CPU 硬件信息。
cat /proc/meminfo 查看内存硬件信息。
df -h 查看磁盘空间使用情况(-h 人类可读格式)。
du -sh <path> 查看目录大小(-s 汇总,-h 可读格式)。

3. 文件操作 (File Operations)

浏览、操作设备上的文件和目录(标准 Linux 命令)。

 
命令注解
ls 列出目录内容。
ls -l 列出详细信息(权限、所有者、大小)。
ls -a 列出所有文件(包括隐藏文件)。
cd <dir> 切换目录。
pwd 显示当前工作目录。
cp <source> <dest> 复制文件。
cp -r <source> <dest> 递归复制目录。
mv <source> <dest> 移动或重命名文件/目录。
rm <file> 删除文件。
rm -r <dir> 递归删除目录(慎用)。
mkdir <dir> 创建目录。
touch <file> 创建空文件或更新文件时间戳。
cat <file> 查看文件内容。
more/less <file> 分页查看文件内容。
head/tail <file> 查看文件开头/结尾几行(tail -f 可实时追踪日志)。
find <path> -name <filename> 查找文件。
grep <pattern> <file> 在文件中搜索文本模式。
chmod <permissions> <file> 修改文件权限(如 chmod 755 script.sh)。
chown <user.group> <file> 修改文件所有者(需 root)。

4. 日志系统 (Logging)

查看和管理系统及应用日志。

 
命令注解
logcat 打印系统日志(核心调试命令)。
logcat -v time 带时间戳的日志。
logcat -v threadtime 带时间、进程ID、线程ID的日志(最常用格式)。
logcat -s <tag> 过滤特定标签(TAG)的日志(如 logcat -s MyApp)。
logcat -b main 查看主日志缓冲区(默认)。
logcat -b radio 查看射频、调制解调器相关日志。
logcat -b events 查看系统事件日志。
logcat -c 清除(clear)整个日志缓冲区。
logcat -g 查看日志缓冲区的大小。
logcat -G <size> 设置日志缓冲区大小(如 16M)。
dmesg 查看 Linux 内核环缓冲消息,用于诊断驱动问题。

5. 设备控制与电源管理 (Device Control & Power)

控制设备状态、电源、按键等。

 
命令注解
reboot 重启设备。
reboot bootloader 重启到 Bootloader 模式(Fastboot 模式)。
reboot recovery 重启到 Recovery 模式。
svc power shutdown 关机(另一种方式)。
svc power reboot 重启(另一种方式)。
input keyevent <keycode> 模拟按键事件(如 input keyevent 26 是电源键)。
input tap <x> <y> 模拟触摸屏幕坐标。
input swipe <x1> <y1> <x2> <y2> 模拟滑动。
input text <string> 模拟输入文本。
screencap -p <path> 截屏并保存为 PNG 文件。
screenrecord <path> 录屏(默认 3 分钟,--time-limit 可设置)。
cmd alarm set <seconds> 设置定时唤醒(用于测试休眠)。

6. 网络管理 (Networking)

管理和诊断网络连接。

 
命令注解
ifconfig 查看和配置网络接口信息(传统命令)。
ip addr show 查看网络接口信息(推荐,更现代)。
netstat 显示网络连接、路由表、接口统计信息。
ping <host> 测试网络连通性。
ndc resolver flushdefaultif 刷新 DNS 缓存(非常有用)。
svc wifi enable/disable 启用/禁用 Wi-Fi。
svc data enable/disable 启用/禁用移动数据。
iptables -L 列出防火墙规则(需 root)。
nc -l -p <port> 网络调试,监听端口( netcat 工具)。

7. 窗口与显示管理 (Window & Display Management)

管理屏幕显示属性。

 
命令注解
wm size 显示或设置屏幕分辨率(如 wm size 1080x1920)。
wm density 显示或设置屏幕密度(DPI)(如 wm density 480)。
wm overscan 设置** overscan**(调整显示边界,用于电视适配)。
dumpsys window displays 转储详细的显示信息,包括所有窗口。
cmd uimode night yes/no 强制开启/关闭夜间模式。

8. 硬件与设备信息 (Hardware & Device Info)

查询特定硬件状态。

 
命令注解
dumpsys sensorservice 转储传感器服务信息,列出所有传感器。
dumpsys battery 电池信息。
dumpsys audio 音频系统和策略信息。
dumpsys telephony.registry 电话状态信息(信号强度等)。
cat /sys/class/power_supply/battery/capacity 直接读取电池电量百分比文件。
cat /proc/version 查看内核版本。

9. 安全与权限 (Security & Permissions)

管理设备安全策略和权限。

 
命令注解
getenforce 查看 SELinux 当前模式(Enforcing 或 Permissive)。
setenforce 0/1 设置 SELinux 模式(0: Permissive, 1: Enforcing,需 root)。
settings put global adb_enabled 0/1 禁用/启用 USB 调试(通过系统设置)。
pm reset-permissions 重置运行时权限。
run-as <package> 以应用身份执行命令,可访问其数据目录(用于调试已安装应用)。
cmd appops set <package> <op> allow/deny 精细控制应用的 AppOps 权限。

10. 开发与测试专用 (Development & Testing)

主要用于自动化测试和深度开发。

 
命令注解
monkey -p <package> -v 500 对应用进行压力测试(随机事件流)。
uiautomator dump 获取当前屏幕的 UI 层级(XML 格式)。
settings get/put/delete 读写全局系统设置(非常强大)。
cmd package bg-dexopt-job 手动触发后台 dexopt(应用编译优化)。
cmd Android 特有的多功能命令,后接子命令(如 cmd vibrator)。
dumpsys gfxinfo <package> 获取应用的渲染性能数据(用于分析UI卡顿)。
dumpsys procstats --hours 3 获取过去 3 小时的进程状态和内存使用历史。

这个列表涵盖了 ADB Shell 中绝大多数常用和重要的命令。掌握这些命令将极大地提升您对 Android 设备的控制力和调试能力。对于任何命令,都可以使用 --help 或 -h 参数来获取更详细的使用帮助(如果该命令支持)。

 
 
 
 

 

 

 

 

 

posted on 2025-09-08 23:12  GKLBB  阅读(79)  评论(0)    收藏  举报