Android dumpsys 使用

本文介绍了Android系统中dumpsys命令的使用方法,包括获取所有系统服务信息、指定服务信息及命令选项等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0. 背景

由于工作中负责一个 log 工具的应用,经常有同事提需求,增加 XXX log 信息,我总是一脸懵B的给加上几条命令,想起以前还准备写一系列的 android 官方提供的工具的使用说明,写到一部分之后很久没管,后来发现博客数据被清了,现在正好从这里再开始。

1. dumpsys 是什么?

dumpsys 是 Android 系统提供的一个 debug 工具,用于获取系统服务的相关信息。

2. 如何使用 dumpsys?

最简单的用法就是执行命令adb shell dumpsys,这条会输出所有的系统服务的诊断信息,一般来说我们不需要这么多的信息,刚刚试着在我使用的 Nexus 5 上执行了这条命令,得到了 13 万行的输出,这么多信息带来的第一个问题就是查找麻烦,其次,得到这 13 万行输出花费了 20 秒!
在使用中,我们仅仅需要这 13 万行信息中的一部分,毕竟我们需要查看的服务信息是比较明确的,并不需要知道系统全部的服务信息。
sumpsys 允许我们在使用时候指定服务名称,用于获取特定的服务信息,例如:

adb shell dumpsys package

以上命令就只提供了PackageManager 中包管理相关的信息。

3. 获取所有的系统服务

尽管 dumpsys 提供了获取单个服务信息的方法,但是我们还是需要知道系统有哪些服务,使用以下命令:

adb shell dumpsys -l

然后看到了 103 个服务,命令输出如下:

Currently running services:
  DockObserver
  SurfaceFlinger
  accessibility
  account
  activity
  alarm
  android.security.keystore
  appops
  appwidget
  assetatlas
  audio
  backup
  battery
  batteryproperties
  batterystats
  bluetooth_manager
  carrier_config
  clipboard
  commontime_management
  connectivity
  consumer_ir
  content
  country_detector
  cpuinfo
  dbinfo
  device_policy
  deviceidle
  devicestoragemonitor
  diskstats
  display
  display.qservice
  dreams
  drm.drmManager
  dropbox
  ethernet
  fingerprint
  gfxinfo
  graphicsstats
  imms
  input
  input_method
  iphonesubinfo
  isms
  isub
  jobscheduler
  launcherapps
  location
  lock_settings
  media.audio_flinger
  media.audio_policy
  media.camera
  media.camera.proxy
  media.player
  media.radio
  media.resource_manager
  media.sound_trigger_hw
  media_projection
  media_router
  media_session
  meminfo
  midi
  mount
  netpolicy
  netstats
  network_management
  network_score
  nfc
  notification
  package
  permission
  phone
  power
  print
  processinfo
  procstats
  restrictions
  rttmanager
  samplingprofiler
  scheduling_policy
  search
  sensorservice
  serial
  servicediscovery
  simphonebook
  sip
  statusbar
  telecom
  telephony.registry
  textservices
  trust
  uimode
  updatelock
  usagestats
  usb
  user
  vibrator
  voiceinteraction
  wallpaper
  webviewupdate
  wifi
  wifip2p
  wifiscanner
  window

这里面比较坑的一件事就是 dumpsys 貌似没有帮助信息,接下来介绍单个服务命令可选项的时候,大多有一个通用的 -h 来获取帮助信息。

4. dumpsys 单个服务时的可选命令

  • -h: 许多服务我们可以通过-h获取相关的帮助信息
  • -c: 部分服务提供了这个选项,用于获取 csv 格式的信息

参考链接

<think>好的,用户想了解如何使用dumpsys获取当前运行的Android应用的信息。首先,我需要回忆一下dumpsys的基本用法和相关命令。根据用户提供的引用内容,特别是引用[1]和[3],知道直接运行adb shell dumpsys会输出所有系统服务的信息,但信息量太大,需要指定服务名称来过滤。 用户的需求是获取当前运行的应用信息,可能需要关注activity服务,因为引用[1]提到用adb shell dumpsys activity来获取活动、任务堆栈等。此外,可能还需要考虑内存信息,如引用[4]提到的获取App内存的方法。 接下来,我应该分步骤说明具体命令。首先是获取当前活动信息,使用activity服务,可能包括活动堆栈、前台进程等。然后,获取内存信息可以使用meminfo服务,后面跟上包名。用户可能也需要其他服务的信息,比如cpuinfo或window,所以需要列出常用服务。 还要注意用户可能需要知道如何过滤输出,比如使用grep命令,或者如何找到应用包名。例如,用adb shell dumpsys window | findstr mCurrentFocus来获取当前焦点窗口的包名,这在引用[3]和[5]中有相关提示。 最后,可能需要提醒用户不同Android版本输出的差异,以及如何结合其他工具分析数据。确保回答覆盖主要命令,并提供实际示例,帮助用户直接应用。</think>### 如何通过 dumpsys 获取当前运行应用信息 #### 1. 获取当前活动(Activity)信息 通过`activity`服务可查看前台应用、任务堆栈等核心信息: ```bash adb shell dumpsys activity ``` **关键字段解析**: - `ResumedActivity`: 当前前台活动(即用户正在交互的界面)[^1] - `Activities`:显示所有运行中的活动实例及其生命周期状态 - `Recent tasks`:最近任务列表(类似多任务切换界面) #### 2. 筛选特定应用的活动堆栈 添加包名可过滤特定应用信息: ```bash adb shell dumpsys activity com.example.myapp ``` #### 3. 获取内存使用详情 通过`meminfo`服务可查看内存占用: ```bash adb shell dumpsys meminfo <package_name> ``` **输出关键指标**: - `PSS`:实际物理内存使用量(含共享库按比例分配) - `Java Heap`:Java堆内存分配情况 - `Native Heap`:本地代码内存分配[^4] #### 4. 获取前台进程信息 快速定位当前前台应用: ```bash adb shell dumpsys window | grep mCurrentFocus ``` 示例输出: ```bash mCurrentFocus=Window{... com.tencent.mm/com.tencent.mm.ui.LauncherUI} ``` #### 5. 其他常用服务 | 服务名称 | 命令格式 | 用途 | |-----------------|-----------------------------|-------------------------------| | `cpuinfo` | `dumpsys cpuinfo` | CPU占用率(需Android 7.0+) | | `battery` | `dumpsys battery` | 电池状态及消耗统计 | | `notification` | `dumpsys notification` | 通知栏信息 | #### 6. 高级用法示例 组合使用`grep`进行信息过滤: ```bash # 查找包含"OOM"的内存异常记录 adb shell dumpsys meminfo | grep -i OOM # 监控Activity启动耗时 adb shell dumpsys activity startup ``` **注意事项**: 1. 不同Android版本输出格式可能有差异,建议对比官方文档 2. 完整服务列表可通过`adb shell dumpsys -l`获取[^3] 3. 需要开启USB调试模式并授予调试权限
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值