
dumpsys activity是 Android 开发中最常用、最强大的调试命令之一。它通过调用 Activity Manager Service (AMS) 的dump方法输出当前系统中关于 Activity、Task任务栈、Service、Broadcast 等组件的极其详细的内部状态信息。由于该命令的输出信息量极其巨大直接运行往往难以找到关键信息。因此在实际开发中通常会结合grep过滤或子命令来精准定位问题。1. 常用精准查询命令查看当前正在显示的 Activity最常用如果你想知道当前屏幕正停留在哪个界面可以使用以下命令过滤焦点 Activityadb shell dumpsys activity activities|grep-EmCurrentFocus|mFocusedActivity说明mCurrentFocus表示当前拥有输入焦点的 ActivitymFocusedActivity表示当前处于前台的 Activity。查看 Activity 堆栈Task Stack信息如果你想了解应用的页面跳转层级和回退栈结构可以查看 Activity 堆栈状态adb shell dumpsys activity activities说明输出中会包含Running tasks (most recent first)等关键信息展示了 TaskRecord 和 ActivityRecord 的层级关系。仅查看栈顶 Activityadb shell dumpsys activitytop说明直接输出当前处于栈顶的 Activity 信息非常快捷。2. 高级用法与参数dumpsys activity支持多种子命令和参数用于查询不同维度的信息按包名过滤如果只想看某个特定应用如com.android.browser的 Activity 状态可以使用-p参数adb shell dumpsys activity-pcom.android.browser查看广播状态adb shell dumpsys activity broadcasts查看进程状态adb shell dumpsys activity processes查看 OOM 管理信息adb shell dumpsys activity oom获取帮助信息如果不确定有哪些子命令可以使用-h参数查看官方说明adb shell dumpsys activity-h 注意事项Windows 环境grep是 Linux/macOS 的命令。如果在 Windows 的 CMD 中执行建议先输入adb shell进入设备终端然后再执行dumpsys activity activities | grep ...。信息实时性dumpsys获取的是执行命令那一瞬间的系统状态快照不同时间点执行结果可能不同。栈混乱、重复启动、闪退之类的定位对应的关键日志在 Android 开发中无论是栈混乱、重复启动还是闪退排查的核心都在于**“日志分析”和“系统状态抓取”**。针对你提到的这三种典型问题我为你整理了具体的排查思路和需要抓取的关键日志1. 栈混乱 / 重复启动这类问题通常表现为页面被无限创建闪屏、返回键需要按多次才能退出、或者页面状态丢失。排查方向检查启动模式确认AndroidManifest.xml中的launchMode是否设置错误例如误用了standard导致重复创建或者singleTask导致任务栈被清空。检查配置变更屏幕旋转、夜间模式切换、主题变更等是否触发了 Activity 的onDestroy和onCreate循环重建。检查生命周期逻辑是否在onResume()中直接请求权限或调用了startActivity()导致死循环。需要抓取的关键日志Activity 栈状态adb shell dumpsys activity activities|grep-EHist #|ActivityRecord|你的包名(这能直观看到任务栈中到底堆叠了多少个你的 Activity)生命周期日志在onCreate、onResume、onDestroy中打印 Log观察是否被频繁调用。Window Manager 事件adb shell logcat-bevents|grepwm(查看wm_pause_activity、wm_on_stop_called等系统级生命周期事件)2. 闪退 (Crash)闪退分为 Java/Kotlin 层崩溃和 Native 层崩溃。排查方向Java 崩溃空指针NullPointerException、数组越界、类型转换错误等。Native 崩溃JNI/C 代码访问非法内存SIGSEGV。需要抓取的关键日志实时 Logcat 过滤adb logcat-sAndroidRuntime:E(重点寻找FATAL EXCEPTION: main和Caused by:关键词堆栈的最上方就是报错点)历史崩溃记录 (DropBox)如果闪退太快没抓到 Logcatadb shell dumpsys dropbox data_app_crash--printNative 崩溃 (Tombstone)adb shellls/data/tombstones/ adb pull /data/tombstones/tombstone_00.3. 卡死无响应 (ANR)表现为应用没有闪退但屏幕弹出“应用无响应 (ANR)”对话框界面完全卡住。排查方向主线程UI线程被耗时操作阻塞如数据库读写、网络请求、SystemClock.sleep()或发生了死锁。需要抓取的关键日志Logcat 中的 ANR 通知adb logcat|grep-iANR(寻找Input dispatching timed out或Waited 5003ms for FocusEvent等关键词)ANR Trace 堆栈文件最核心adb pull /data/anr/traces.txt.(打开文件后搜索----- MAIN THREAD -----看主线程卡在了哪一行代码)备用方案如果真机没有权限读取/data/anr/可以使用adb shell dumpsys dropbox--printdata_anr** 子命令解释**emulator_car64_x86_64:/ # dumpsys activity -h Activity manager dump options: [-a] [-c] [-p PACKAGE] [-h] [WHAT] ... WHAT may be one of: a[ctivities]: activity stack state r[recents]: recent activities state b[roadcasts] [PACKAGE_NAME] [history [-s]]: broadcast state broadcast-stats [PACKAGE_NAME]: aggregated broadcast statistics i[ntents] [PACKAGE_NAME]: pending intent state p[rocesses] [PACKAGE_NAME]: process state o[om]: out of memory management perm[issions]: URI permission grant state prov[iders] [COMP_SPEC ...]: content provider state provider [COMP_SPEC]: provider client-side state s[ervices] [COMP_SPEC ...]: service state allowed-associations: current package association restrictions as[sociations]: tracked app associations exit-info [PACKAGE_NAME]: historical process exit information lmk: stats on low memory killer lru: raw LRU process list binder-proxies: stats on binder objects and IPCs settings: currently applied config settings service [COMP_SPEC]: service client-side state package [PACKAGE_NAME]: all state related to given package all: dump all activities top: dump the top activity users: user state WHAT may also be a COMP_SPEC to dump activities. COMP_SPEC may be a component name (com.foo/.myApp), a partial substring in a component name, a hex object identifier. -a: include all available server state. -c: include client state. -p: limit output to given package. -d: limit output to given display. --checkin: output checkin format, resetting data. --C: output checkin format, not resetting data. --proto: output dump in protocol buffer format. --dump-dumpable: dump just the DUMPABLE-related state of an activity. Use the --list-dumpables option to list the supported DUMPABLEs --list-dumpables: show the available dumpables in an activitydumpsys activity‑h 帮助文档完整解读AAOS车载环境这条命令是打印ActivityManager(AMS) 服务所有可导出调试信息的帮助列表。dumpsys activity是排查车机Activity焦点、任务栈、Service、进程存活、APP被杀、后台状态最核心命令。一、通用选项‑a / ‑c / ‑p / ‑d参数含义车载用途-a输出全部完整AMS状态最全日志完整抓取任务栈、Activity、Service、binder连接排查焦点丢失、跳转异常最常用-c附带客户端进程状态查看客户端侧记录-p PACKAGE只过滤指定包名缩小输出dumpsys activity -p com.android.car.settings activities只看车机设置应用-d displayId限定指定显示屏多屏车载座舱区分主副屏任务栈二、WHAT 子命令清单 AAOS车载开发实用说明dumpsys activity WHAT1. 任务栈、Activity焦点类子命令全称作用车载场景a/activitiesActivity栈状态打印所有Task、Activity堆栈、当前前台Top‑Activity、焦点、display✅排查车机黑屏、焦点丢失、Launcher、CarSettings、CarSystemUI页面栈首选命令toptop activity只打印当前最顶层前台Activity快速看当前车机屏幕是哪个页面非常高频r/recents最近任务列表最近打开过的APP车载Recent任务栈排查应用切后台后被回收投屏任务残留2. Broadcast广播子命令作用b [PACKAGE]/broadcasts广播队列、等待发送/正在发送的广播还可加history [-s]看历史广播记录broadcast‑stats [pkg]广播聚合统计发送次数超时、ANR统计3. 进程、OOM、低内存查杀车载闪退高频子命令作用AAOS排查场景p/processes [PACKAGE]所有进程状态adj优先级oom_score_adj进程存活状态查看CarApp后台优先级是否被抬高/降低预判会不会被LMK杀掉o/oomOOM内存管理配置、阈值低内存参数lmklow‑memory‑killer 统计数据✅查询进程被低内存查杀历史记录lruLRU最近最少使用进程列表AMS维护的后台进程回收顺序exit-info [PACKAGE]进程退出历史信息闪退、进程消失神器可查到进程退出原因码是否被系统杀死4. Service车载CarService、跨进程服务核心子命令含义s [COMP]/services服务端状态已启动Service、绑定连接、客户端列表、死亡状态支持填组件名过滤service [COMP]客户端侧的Service绑定状态和上面互补AAOS示例dumpsys activity services com.android.car.projection查看投屏服务绑定情况5. Intent、PendingIntent子命令含义i [PACKAGE]/intentsPendingIntent挂起任务闹钟、延迟跳转6. ContentProvider子命令含义providersContentProvider服务端状态providerContentProvider客户端侧状态7. 其他permissionsURI临时授权状态allowed‑associations/associationsApp关联限制车载应用休眠管控binder‑proxiesAMS内部Binder代理对象统计排查binder泄漏settingsAMS当前生效配置参数users多用户状态车载多用户账号all导出AMS完整全部信息等价‑a效果三、AAOS车载开发最常用实操命令直接复制adb shell执行# 1.查看当前顶层Activity判断焦点页面 dumpsys activity top # 2.完整打印Activity任务栈最常用排查焦点丢失、跳转失败 dumpsys activity activities # 3.只看CarSettings车机设置应用的AMS信息 dumpsys activity -p com.android.car.settings activities # 4.查看CarProjection投屏服务绑定状态 dumpsys activity services com.android.car.projection # 5.查看指定包进程退出历史排查闪退消失 dumpsys activity exit-info com.xxx.carapp # 6.查看AMS维护的所有进程adj优先级 dumpsys activity processes四、AMS(dumpsys activity) 与 dmesg 的分工区别你闪退排查组合dumpsys activity exit‑info→ 用户空间AMS记录进程退出、LMK查杀日志dmesg→ 内核层 lowmemorykiller / oom‑killer 真正杀进程内核日志二者搭配AMS记录系统决策dmesg记录内核实际执行结果。