AI 汇总,用于速查。
一、活动管理器adb shell am(Activity Manager)命令用于在 Android 设备上管理 Activity、Service、Broadcast 等组件。其参数可划分为以下功能模块:
1. 组件启动与操作启动 Activitystart [options]
示例:adb shell am start -n com.example/.MainActivity启动 Servicestartservice [options]
示例:adb shell am startservice -n com.example/.MyService绑定 Servicebindservice [options]
示例:adb shell am bindservice -n com.example/.MyService停止 Servicestopservice [options]
示例:adb shell am stopservice -n com.example/.MyService发送广播broadcast [options]
示例:adb shell am broadcast -a android.intent.action.BOOT_COMPLETED2. 进程与应用管理强制停止应用force-stop
示例:adb shell am force-stop com.example.app终止进程kill [options]
示例:adb shell am kill com.example.app清除应用数据clear-app-data
示例:adb shell am clear-app-data com.example.app3. 调试与性能分析启动性能分析profile start
示例:adb shell am profile com.example.app start /sdcard/profile.trace停止性能分析profile stop
示例:adb shell am profile com.example.app stop设置调试应用set-debug-app [options]
示例:adb shell am set-debug-app -w com.example.app清除调试应用设置clear-debug-app4. Instrumentation 测试运行测试用例instrument [options]
示例:adb shell am instrument -w com.example.test/androidx.test.runner.AndroidJUnitRunner
5. 用户与多任务管理切换用户switch-user
示例:adb shell am switch-user 1启动用户start-user
示例:adb shell am start-user 1停止用户stop-user [options]
示例:adb shell am stop-user -f 1任务栈操作stack move-task
示例:adb shell am stack move-task 1 26. 设备显示设置修改显示尺寸display-size
示例:adb shell am display-size 800x600修改显示密度display-density
示例:adb shell am display-density 2407. 其他工具监控模式monitor
示例:adb shell am monitor(监控 Activity/Service 生命周期)模拟系统挂起(测试用)hang
示例:adb shell am hang重启设备restart
示例:adb shell am restart常用 Intent 参数选项在启动组件时,可通过以下选项构建 Intent:
-a
1. 包查询与列表列出所有包list packages [options] [filter]
示例:adb shell pm list packages -f # 显示包关联的APK路径
adb shell pm list packages -s # 只显示系统应用
查看包安装路径path
示例:adb shell pm path com.android.chrome查看包详细信息dump
示例:adb shell pm dump com.android.chrome2. 包安装与卸载安装APKinstall [options]
示例:adb shell pm install /sdcard/app.apk
adb shell pm install -t -g app.apk # 允许测试并授予所有权限
卸载应用uninstall [options]
示例:adb shell pm uninstall com.example.app
adb shell pm uninstall -k com.example.app # 卸载但保留数据
3. 权限管理授予权限grant
示例:adb shell pm grant com.example.app android.permission.CAMERA
撤销权限revoke
示例:adb shell pm revoke com.example.app android.permission.ACCESS_FINE_LOCATION
重置权限reset-permissions
示例:adb shell pm reset-permissions4. 包状态控制启用/禁用组件enable
示例:adb shell pm disable com.example.app/.MainActivity
挂起/恢复应用(Android 9+)suspend
示例:adb shell pm suspend com.example.app5. 用户管理创建用户create-user
示例:adb shell pm create-user test_user删除用户remove-user
示例:adb shell pm remove-user 10列出用户list users
示例:adb shell pm list users6. 存储与数据管理清除应用数据clear
示例:adb shell pm clear com.example.app设置安装位置set-install-location <0|1|2>
(0=自动,1=内部存储,2=外部存储)
示例:adb shell pm set-install-location 0获取安装位置get-install-location7. 编译与优化编译应用(ART优化)compile [options]
示例:adb shell pm compile -m speed com.example.app # 速度优化
强制编译所有应用force-dex-opt
示例:adb shell pm force-dex-opt8. 验证与安全验证安装包verify [options]
示例:adb shell pm verify -r /sdcard/app.apk设置应用链接行为set-app-links [options]
示例:adb shell pm set-app-links --package com.example.app 1(允许打开链接)9. 其他工具修复权限reset-permissions(重置运行时权限)重置偏好设置reset-preferred-apps
示例:adb shell pm reset-preferred-apps 0三、设备信息getprop 和 setprop 是 Android 系统属性管理命令,用于读取/修改系统级配置参数。以下是详细的功能模块划分和参数说明:
1. 命令基础功能命令功能描述语法格式getprop读取系统属性值getprop [属性名]setprop设置系统属性值setprop <属性名> <属性值>2. 系统属性类型(按前缀分类)a) 只读属性 (ro.*)前缀:ro. (read-only)特点:系统初始化后不可修改常见属性:ro.build.version.release # Android 版本号
ro.product.model # 设备型号 (e.g., "Pixel 6")
ro.serialno # 设备序列号
b) 持久化属性 (persist.*)前缀:persist.特点:重启后值保持不变(存储在 /data/property)常见属性:persist.sys.timezone # 系统时区 (e.g., "Asia/Shanghai")
persist.sys.language # 系统语言
c) 控制属性 (ctl.*)前缀:ctl.特点:用于启停系统服务关键操作:setprop ctl.start
# 启动服务 (e.g., "zygote")
setprop ctl.stop
# 停止服务
d) 调试属性 (debug.*, log.*)前缀:debug. / log.作用:控制调试行为示例:setprop log.tag.GPS VERBOSE # 开启GPS模块详细日志
setprop debug.choreographer.skipwarning 1 # 禁用UI渲染警告
e) 网络属性 (net.*, dhcp.*)前缀:net. / dhcp.作用:管理网络配置示例:getprop net.dns1 # 主DNS服务器IP
setprop net.eth0.dns1 8.8.8.8 # 设置以太网DNS
3. 核心参数详解getprop 参数参数/用法说明getprop列出 所有 系统属性getprop <属性名>读取指定属性值getprop -T显示属性类型 (Android 8.0+)getprop -Z显示安全上下文 (SELinux)setprop 参数参数/用法说明setprop <属性名> <值>修改/创建属性特殊值注意空格需用引号包裹setprop test.key "value with spaces"多单词值需引号setprop boot_completed "done"4. 关键属性示例表属性名作用读写性ro.build.fingerprint设备指纹信息只读persist.sys.adb.tcp.portADB网络调试端口持久化sys.boot_completed系统启动完成标志 (1=完成)可写debug.egl.trace启用OpenGL渲染跟踪可写service.adb.root控制ADB Root权限 (1=开启)可写5. 操作示例▶ 读取设备信息
adb shell getprop ro.product.model # 输出: "Pixel 7 Pro"
adb shell getprop ro.build.version.sdk # 输出: "34" (Android 14)
▶ 修改时区(需重启)
adb shell setprop persist.sys.timezone Europe/Paris
▶ 控制服务启停
# 重启网络服务
adb shell setprop ctl.stop netd
adb shell setprop ctl.start netd
▶ 开启全局调试日志
adb shell setprop log.tag.* VERBOSE
▶ 检查系统启动状态
adb shell getprop sys.boot_completed # 输出"1"表示启动完成
6. 注意事项权限要求:
修改 ro.* 属性需要 Root 权限(需先 adb root)persist.* 修改后需重启生效属性存储位置:
临时属性:/dev/__properties__持久属性:/data/property/*危险操作:
错误修改核心属性(如 ro. 前缀)可能导致 系统无法启动
属性删除:
无直接删除命令,可通过设置空值覆盖:
setprop my.temp.property ""
7. 调试技巧监视属性变化:adb shell watch -n 1 getprop | grep <属性名>
查看属性列表:adb shell getprop | grep -E "ro.|persist." # 过滤关键属性
重置所有持久属性:
删除 /data/property/* 文件(需 Root)四、转储系统信息dumpsys 是 Android 系统诊断工具,用于获取系统服务的详细状态信息。其功能模块按系统服务分类,以下是主要模块及其参数的详细解析:
1. 基础系统服务服务名命令参数功能描述activitydumpsys activity [options]显示 Activity/任务栈信息windowdumpsys window [options]窗口管理器状态packagedumpsys package [options]包管理信息meminfodumpsys meminfo [package]内存使用详情2. 硬件与传感器服务名命令参数功能描述batterydumpsys battery电池状态与统计sensorservicedumpsys sensorservice传感器服务状态displaydumpsys display显示配置参数3. 网络与连接服务名命令参数功能描述netstatsdumpsys netstats网络流量统计connectivitydumpsys connectivity网络连接状态wifidumpsys wifiWi-Fi 服务详情4. 存储与多媒体服务名命令参数功能描述diskstatsdumpsys diskstats磁盘使用统计media.cameradumpsys media.camera相机服务状态media.audiodumpsys media.audio音频服务信息5. 进程与性能服务名命令参数功能描述procstatsdumpsys procstats [hours]进程运行统计gfxinfodumpsys gfxinfo [package]图形渲染性能cpuinfodumpsys cpuinfoCPU 使用情况核心参数详解通用参数参数作用示例-l列出所有可用服务dumpsys -l--help显示帮助信息dumpsys --help-t [timeout]设置超时时间(秒)dumpsys -t 30 activity--proto输出 Protocol Buffer 格式dumpsys window --proto模块专用参数Activity 服务 (activity)
dumpsys activity [options] [COMPONENT]
a:显示所有 Activity 信息b:显示后台 Activitys:显示栈信息p [package]:过滤指定包名示例:dumpsys activity p com.android.chrome内存信息 (meminfo)
dumpsys meminfo [options] [package|pid]
-a:显示所有进程-d:显示 Dalvik 内存-s:按重要性排序示例:dumpsys meminfo -s com.android.browser图形渲染 (gfxinfo)
dumpsys gfxinfo [package] [framestats]
framestats:输出帧性能数据reset:重置统计计数器示例:dumpsys gfxinfo com.android.chrome framestats电池统计 (battery)
dumpsys battery [options]
set [ac|usb|wireless|status] [value]:模拟电池状态reset:重置电池统计示例:dumpsys battery set level 50五、monkey测试monkey 是 Android 平台的压力测试工具,用于模拟用户随机操作事件。以下是完整的命令参数详解,按功能分类说明:
1、基础命令格式
adb shell monkey [options]
参数说明示例--pct-touch
adb shell monkey -p com.example.app \
--throttle 300 \
--ignore-crashes \
--ignore-timeouts \
-v -v 10000
2. 精准复现测试场景
adb shell monkey -p com.android.chrome \
-s 20240501 \ # 固定随机种子
--pct-touch 40 \
--pct-appswitch 30 \
--throttle 500 \
-v -v -v 5000
3. 带黑名单的多应用测试
adb shell monkey \
--pkg-blacklist-file /sdcard/blacklist.txt \
--ignore-security-exceptions \
--monitor-native-crashes \
-v 20000
4. 脚本化测试
adb shell monkey \
-f /sdcard/gestures.mks \ # 手势脚本
-f /sdcard/login.mks \ # 登录脚本
--throttle 1000 \
-v 1000
8、Monkey 脚本语法Monkey 脚本(.mks 文件)支持精确控制事件:
# 基本命令
type= raw events
count= 10
speed= 1.0
# 触摸事件
DispatchPointer(0,0,0,500,800,0,0,0,0,0,0,0)
DispatchPointer(0,0,1,500,800,0,0,0,0,0,0,0)
# 按键事件
DispatchKey(0,0,0,KEYCODE_HOME,0,0,0,0)
# 启动Activity
LaunchActivity(com.example,com.example.MainActivity)
# 等待
UserWait(2000)
9、调试技巧事件流重现
使用 -s 参数固定随机种子重现问题场景:
adb shell monkey -s 12345 -v 1000
实时监控
结合 logcat 过滤 Monkey 事件:
adb logcat -s "Monkey"
性能分析
使用 --hprof 生成内存快照:
adb shell monkey --hprof -p com.example.app 500
网络控制
通过端口远程控制 Monkey:
adb shell monkey --port 1080 1000
telnet localhost 1080 # 输入命令如:tap 100 200
六、自动化开发相关1. 输入命令 (input)用于模拟各种输入事件(按键、触摸、文本输入等)
主要参数:参数说明示例text
# 长按操作(通过延长swipe时间)
input swipe 500 500 500 500 2000
# 组合按键(返回+菜单)
input keyevent KEYCODE_BACK && input keyevent KEYCODE_MENU
# 输入特殊字符
input text "邮箱地址\%40domain.com" # @符号需转义
2. 屏幕截图与录制(1) screencap 截图命令参数说明示例-p保存为PNG格式(默认)screencap -p /sdcard/screen.png-d
命令结构:
settings [--user
]
[value]
命名空间:命名空间说明system系统设置(铃声、亮度等)secure安全设置(位置、输入法等)global全局设置(ADB、调试选项)主要命令:命令说明示例get
# 启用USB调试
settings put global adb_enabled 1
# 设置默认输入法
settings put secure default_input_method com.google.android.inputmethod.latin/.LatinIME
# 修改屏幕超时
settings put system screen_off_timeout 600000 # 10分钟
4. 窗口管理器 (wm)管理显示设置和窗口属性
主要命令:命令参数说明示例size[reset|WxH]获取/设置分辨率wm size 1080x1920density[reset|DENSITY]获取/设置DPIwm density 420overscanreset|LEFT,TOP,RIGHT,BOTTOM设置过扫描区域wm overscan 0,0,-100,0scalingoff|auto显示缩放模式wm scaling autodismiss-keyguard解锁屏幕wm dismiss-keyguardmultiwindowenable|disable启用/禁用分屏wm multiwindow enable高级用法:
# 临时修改为720P分辨率
wm size 720x1280
# 恢复默认分辨率
wm size reset
# 右侧扩大显示区域100像素(游戏全屏常用)
wm overscan 0,0,-100,0
5. 输入法管理器 (ime)管理输入法设置和状态
主要命令:命令参数说明示例list[-a|-s]列出输入法ime list -sset
adb shell ime list -a
# 示例输出:com.google.android.inputmethod.latin/com.android.inputmethod.latin.LatinIME
设置默认输入法:
ime set com.google.android.inputmethod.latin/com.android.inputmethod.latin.LatinIME
切换输入法:
# 禁用当前输入法
ime disable com.current.ime/.Keyboard
# 启用新输入法
ime enable com.new.ime/.Keyboard
调试技巧:
# 查看当前输入法
settings get secure default_input_method
# 强制显示输入法
input keyevent KEYCODE_SETTINGS
综合使用示例
# 1. 修改分辨率
wm size 720x1280
# 2. 降低屏幕亮度
settings put system screen_brightness 30
# 3. 切换输入法
ime set com.google.android.inputmethod.latin/.LatinIME
# 4. 输入文本
input text "测试输入@123"
# 5. 截图保存
screencap /sdcard/test_screen.png
# 6. 恢复设置
wm size reset
settings put system screen_brightness 150