adb shell dumpsys的使用

本文介绍如何使用adb命令查看Android设备上的系统服务列表及其详细信息。提供了两种方法:使用dumpsys命令和servicelist命令,并展示了如何针对特定服务进行查询。

该命令用于打印出当前系统信息,默认打印出设备中所有service的信息,可以在命令后面加指定的service name.

有两种方法可以查看service list:

1. adb shell dumpsys

输出信息的开始部分就是所有运行的service,如下:

Currently running services:

SurfaceFlinger:
accessibility:
account:
activity:
alarm:
appwidget:
audio:
backup:
battery:
batteryinfo:
clipboard:
connectivity:
content:
cpuinfo:
device_policy:
devicestoragemonitor:
diskstats:
dropbox:
entropy:
hardware:
input_method:
iphonesubinfo:
isms:
location:
media.audio_flinger:
media.audio_policy:
media.camera:
media.player:
meminfo:
mount:
netstat:
network_management:
notification:
package:
permission:
phone:
power:
search:
sensorservice:
simphonebook:
statusbar:
telephony.registry:
throttle:
uimode:
usagestats:
 vibrator:
wallpaper:
wifi:
window:

2. adb shell service list

输出结果如下:

Found 49 services:
0       phone: [com.android.internal.telephony.ITelephony]
1       iphonesubinfo: [com.android.internal.telephony.IPhoneSubInfo]
2       simphonebook: [com.android.internal.telephony.IIccPhoneBook]
3       isms: [com.android.internal.telephony.ISms]
4       diskstats: []
5       appwidget: [com.android.internal.appwidget.IAppWidgetService]
6       backup: [android.app.backup.IBackupManager]
7       uimode: [android.app.IUiModeManager]
8       audio: [android.media.IAudioService]
9       wallpaper: [android.app.IWallpaperManager]
10      dropbox: [com.android.internal.os.IDropBoxManagerService]
11      search: [android.app.ISearchManager]
12      location: [android.location.ILocationManager]
13      devicestoragemonitor: []
14      notification: [android.app.INotificationManager]
15      mount: [IMountService]
16      accessibility: [android.view.accessibility.IAccessibilityManager]
17      throttle: [android.net.IThrottleManager]
18      connectivity: [android.net.IConnectivityManager]
19      wifi: [android.net.wifi.IWifiManager]
20      network_management: [android.os.INetworkManagementService]
21      netstat: [android.os.INetStatService]
22      input_method: [com.android.internal.view.IInputMethodManager]
23      clipboard: [android.text.IClipboard]
24      statusbar: [com.android.internal.statusbar.IStatusBarService]
25      device_policy: [android.app.admin.IDevicePolicyManager]
26      window: [android.view.IWindowManager]
27      alarm: [android.app.IAlarmManager]
28      vibrator: [android.os.IVibratorService]
29      hardware: [android.os.IHardwareService]
30      battery: []
31      content: [android.content.IContentService]
32      account: [android.accounts.IAccountManager]
33      permission: [android.os.IPermissionController]
34      cpuinfo: []
35      meminfo: []
36      activity: [android.app.IActivityManager]
37      package: [android.content.pm.IPackageManager]
38      telephony.registry: [com.android.internal.telephony.ITelephonyRegistry]
39      usagestats: [com.android.internal.app.IUsageStats]
40      batteryinfo: [com.android.internal.app.IBatteryStats]
41      power: [android.os.IPowerManager]
42      entropy: []
43      sensorservice: [android.gui.SensorServer]
44      SurfaceFlinger: [android.ui.ISurfaceComposer]
45      media.audio_policy: [android.media.IAudioPolicyService]
46      media.camera: [android.hardware.ICameraService]
47      media.player: [android.media.IMediaPlayerService]
48      media.audio_flinger: [android.media.IAudioFlinger]

查询到运行的system service后,就可以在dumpsys后面加上service的名字,查看指定的service信息。

adb shell dumpsys activity

adb shell dumpsys cpuinfo

adb shell dumpsys battery

adb shell dumpsys window(最后部分可以看到分辨率的信息)

有些service能够接收额外的参数,我们可以使用-h查看帮助信息。

adb shell dumpsys package -h

adb shell dumpsys activity -h

出处:http://blog.csdn.net/g19920917/article/details/38032413

### ADB 命令功能解析 #### `adb shell dumpsys battery` 的基本功能 通过 `adb shell dumpsys battery`,用户可以查询 Android 设备中的电池状态信息。这些信息包括但不限于电池是否安装 (`present`)、电量水平 (`level`)、充电状态 (`status`) 和健康状况 (`health`) 等[^3]。 --- #### 各子命令的具体功能说明 1. **`unplug`** - 此命令用于模拟设备断开电源的状态。 - 执行此操作后,AC 供电 (`AC powered`) 和 USB 供电 (`USB powered`) 都会被设置为 `false`,从而停止任何外部电源输入[^1]。 2. **`set status 4`** - 设置电池的充电状态为指定值。 - 参数 `4` 表示电池处于充满电 (FULL) 的状态。 - 可能的取值及其含义如下: - `1`: 未知 (Unknown) - `2`: 充电中 (Charging) - `3`: 已放电至低电量 (Discharging) - `4`: 完全充满 (Full)[^3] 3. **`set level 100`** - 将电池电量百分比设置为指定值。 - 在本例中,将电量设置为 `100%`,表示电池已经完全充满。 - 默认情况下,`scale` 被定义为 `100`,因此 `level` 的范围通常是从 `0` 到 `100`[^3]。 --- #### 综合效果分析 当依次运行以下命令时: ```bash adb shell dumpsys battery unplug adb shell dumpsys battery set status 4 adb shell dumpsys battery set level 100 ``` 其综合效果是: - 断开了所有的外部电源连接; - 将电池状态标记为“已充满”; - 将电量显示调整为满格(100%)。 这种组合常被开发者用来测试应用在不同电池条件下的行为表现,或者调试与电池管理相关的逻辑[^1]。 --- ### 示例代码演示 以下是完整的脚本实现方式: ```bash # 模拟拔掉电源线缆 adb shell dumpsys battery unplug # 设置电池状态为 FULL (充满) adb shell dumpsys battery set status 4 # 设置电量为 100% adb shell dumpsys battery set level 100 ``` 以上命令可帮助开发人员快速配置虚拟环境来验证特定场景下应用程序的行为。 ---
### 3.1 `adb shell cmd` 的用途与特点 `adb shell cmd` 是 Android 提供的一种用于调用系统服务接口的命令行工具。它允许用户通过 ADB 向系统服务发送命令,从而执行特定操作。例如: ```bash adb shell cmd package compile -m interpret-only -f com.example.app ``` 该命令用于设置应用的编译模式为解释执行,适用于性能调试或兼容性测试。`cmd` 命令通常用于触发服务行为,而不是查询状态。每个服务(如 `package`、`activity`、`window`)支持的命令和参数不同,可以通过 `adb shell cmd -h` 查看支持的命令列表[^1]。 `adb shell cmd` 的主要特点是**主动调用系统服务的功能接口**,通常用于执行操作,例如启动服务、触发编译、调整系统行为等。它适用于需要对系统行为进行干预或测试的场景。 --- ### 3.2 `adb shell dumpsys` 的用途与特点 `adb shell dumpsys` 用于**获取系统服务的当前状态信息**,是 Android 中用于调试和诊断系统状态的重要工具。它会向系统服务发送 `dump` 请求,并返回该服务的详细运行状态。例如: ```bash adb shell dumpsys activity activities ``` 该命令可查看当前所有 Activity 的状态信息,包括任务栈、生命周期状态等。类似地,`dumpsys package` 可用于查看应用包管理器的信息,如权限、组件等。[^2] `adb shell dumpsys` 的核心用途是**诊断系统状态**,常用于分析系统卡顿、内存占用、服务异常等问题。例如: ```bash adb shell dumpsys window ``` 可用于查看当前窗口管理器的状态,包括窗口层级、焦点状态、显示区域等信息,适用于 UI 显示问题的调试。[^4] --- ### 3.3 `adb shell cmd` 与 `adb shell dumpsys` 的区别 | 特性 | `adb shell cmd` | `adb shell dumpsys` | |------|------------------|---------------------| | **用途** | 调用系统服务功能接口,执行特定操作 | 获取系统服务当前状态信息 | | **作用方式** | 触发服务执行某个操作 | 查询服务的运行状态 | | **典型使用场景** | 启动 Activity、设置编译模式、控制窗口行为 | 分析系统状态、调试 ANR、查看组件信息 | | **命令格式** | `cmd <service> <command> [arguments]` | `dumpsys <service> [options]` | | **是否修改系统状态** | 是,通常用于执行操作 | 否,仅用于查询状态 | | **输出内容** | 执行结果或状态反馈 | 服务当前的详细运行状态 | 例如,在调试应用编译行为时,`cmd package` 可以用于设置应用为解释执行模式,而 `dumpsys package` 则用于查看当前应用的安装状态和权限信息。[^1] --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值