dumpsys 使用

一、概述

用法简介

dumpsys 是一种在 Android 设备上运行的工具,可提供有关系统服务的信息。可以使用下文所述的命令行选项仅获取您感兴趣的系统服务的输出。

  • 使用方法
adb shell dumpsys [-t timeout] [--help | -l | --skip services | service [arguments] | -c | -h]
  • 命令行选项
选项说明
-t timeout指定超时期限(秒)。如果未指定,默认值为 10 秒。
–help输出 dumpsys 工具的帮助文本。
-l输出可与 dumpsys 配合使用的系统服务的完整列表。
service [arguments]指定您希望输出的服务。某些服务可能允许您传递可选参数。您可以通过将 -h 选项与服务名称一起传递来了解这些可选参数

常用命令

adb shell dumpsys -l 通过此命令获得所有可支持功能,以下列举常用的部分

  • category
category解释
activityAMS相关信息
packagePMS相关信息
windowPMS相关信息
procstats进程统计
cpuinfoCPU
meminfo内存使用情况
gfxinfo图像
audio查看声音信息,包括各个进程申请音频焦点
netstats查看网络统计信息
SurfaceFlinger图像相关
battery电池信息

………… 等等

请添加图片描述

二、举例部分命令使用场景

查看内存分配 meminfo

记录应用内存在不同类型的 RAM 分配之间的划分情况

内存指标概念

  • USS 物理内存,进程独占的内存
  • PSS 物理内存,PSS= USS+ 按比例包含共享库
  • RSS 物理内存 RSS= USS+ 包含共享库
  • VSS 虚拟内存 VSS= RSS+ 未分配实际物理内存

故内存的大小关系:VSS >= RSS >= PSS >= USS

RAM: 随机存取存储器

PSS概念

PSS是实际使用的物理内存,这是对应用 RAM 占用情况的衡量,考虑了在进程之间共享 RAM 页的情况。您的进程独占的 RAM 页会直接计入其 PSS 值,而与其他进程共享的 RAM 页则仅会按相应比例计入 PSS 值。例如,两个进程之间共享的 RAM 页会将其一半的大小分别计入这两个进程的 PSS 中,PSS 衡量的一个优点是,您可以将所有进程的 PSS 加起来确定所有进程占用的实际内存。这表示 PSS 是一种理想的方式,可用来衡量进程的实际 RAM 占用比重,以及相对于其他进程和可用的总 RAM 而言,对 RAM 的占用情况。

adb shell dumpsys meminfo 可以查看各个进程使用状况

通过这个命令我们可以一下了解到我们的手机目前占用内存从大到小的排序,com.hugh.basis这款是我打开的调试app,在app开启后,我们也可通过此命令来看我们应用的初始内存占用多少

 dumpsys meminfo                                                                                                                                                
Applications Memory Usage (in Kilobytes):
Uptime: 2964163 Realtime: 2964163

Total PSS by process:
    193,237K: system (pid 1529)
    130,817K: com.miui.home (pid 3080 / activities)
    129,076K: com.tencent.mm (pid 4578)
     87,370K: com.android.systemui (pid 1948 / activities)
     69,517K: surfaceflinger (pid 572)
     64,283K: com.hugh.basis (pid 10651 / activities)
     51,586K: com.tencent.mm:push (pid 4899)
     45,177K: com.sina.weibo (pid 7078)
     43,622K: com.tencent.mm:appbrand0 (pid 8304)
     43,019K: com.tencent.mm:appbrand1 (pid 7867)
     40,621K: com.xiaomi.market (pid 9014)
...

Total PSS by category:
    399,675K: Dalvik
    295,839K: Native
    124,249K: .oat mmap
    123,737K: .art mmap
    108,692K: EGL mtrack
    104,307K: .dex mmap
     89,147K: Unknown
     54,490K: Dalvik Other
     49,158K: .so mmap
     43,560K: GL mtrack
     39,294K: Gfx dev
     23,092K: Stack
      8,624K: .apk mmap
      5,751K: Other mmap
      3,596K: Ashmem
      2,002K: Other dev
      1,115K: .ttf mmap
        120K: .jar mmap
         20K: Cursor
          0K: Other mtrack

adb shell dumpsys meminfo package_name|pid [-d] 可以查看各个进程使用状况

如果你想看一个进程更详细内存占用,就可以加上包名或进程名,-d 标记会输出更多与 Dalvik 和 ART 内存占用情况相关的信息。

请添加图片描述

一般情况下,仅需关注 Pss TotalPrivate Dirty

检查电池诊断 batterystats

 adb shell dumpsys batterystats

输出通常包含以下内容:

  • 电池相关事件的历史记录
  • 设备的全局统计信息
  • 每个 UID 和系统组件的大致用电量
  • 单个应用的每个数据包占用的移动网络毫秒数
  • 系统 UID 汇总统计信息
  • 应用 UID 汇总统计信息

测试界面性能

如果指定 gfxinfo 服务,输出中会包含录制阶段所发生的动画帧的相关性能信息。

adb shell dumpsys gfxinfo

请添加图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值