面试系列——内存,CPU,帧率采集原理总结

本文详细介绍了Android系统中内存、CPU使用率和帧率(FPS)的采集原理。内存采集主要通过Debug.getMeminfo、ActivityManager.getProcessMemoryInfo以及adb dumsys meminfo。CPU采集涉及jiffies概念,通过解析proc/[pid]/stat和proc/stat文件获取,Android 8.0以上需借助top命令。帧率采集基于VSync信号,通过Choreographer.FrameCallback监听帧率变化,高刷新率设备回调更频繁。可通过adb shell dumpsys gfxinfo进行工具统计。

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

内存 采集原理

  • 统计原理:
    • 单个进程内存信息:最终都是读取 proc/[pid]/smaps
    • 系统内存信息:最终是读取 proc/meminfo
  • 统计方法
    • API 层面通过 Debug.getMeminfo 或者 ActivityManager.getProcessMemoryInfo
    • 工具命令 adb dumsys meminfo [pid]

CPU 采集原理

  • 统计原理:
    • jJiffies: 为Linux核心变数(unsigned long),它被用来记录系统自开机以来,已经过了多少tick。CPU 的利用率就是用执行用户态+系统态的Jiffies 除以总的Jiffies 来表示。
    • 单个进程的CPU 使用率: proc/[pid]/stat
    • 整个系统的CPU 使用率: proc/stat
  • 统计方法:
    • 程序读取:
      小于 Android 8.0:程序直接 读取 proc/[pid]/stat 文件 解析返回结果
      大于等于 Android 8.0:无权限读取proc文件,那么则通过 top 命令来间接获取 读取返回结果.
    • 工具命令:adb shell dumpsys cpuinfo [pkg]

帧率采集原理

  • 统计原理:
    即 Frame Rate,单位 fps,是指 gpu 生成帧的速率,如 33 fps,60fps,越
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值