【问题标题】:How to determine resource allocation by app on Android如何在 Android 上确定应用程序的资源分配
【发布时间】:2014-01-16 21:36:28
【问题描述】:

我正在尝试编写一个 Android 应用程序 (java),它执行诸如确定应用程序的电池使用情况、应用程序的 cpu 使用情况、应用程序的内存使用情况,然后是电池电量、cpu 电压、电池温度、cpu 等总体情况temp 等。基本上是一堆统计数据,以后可能会用于分析。在阅读了如何做到这一点之后,在我看来,最好的方法是使用 /proc。具体来说,/proc/apm 用于电池,/proc/cpuinfo 用于 CPU 速度,/proc/meminfo 用于内存字段,/proc/stat 用于 CPU 使用。要获取特定于应用程序的数据,您是否会跟随 /proc 使用 PID,也许是在循环中?例如要对其进行伪代码,它会是这样的:

Get PIDs of all running processes
Run a loop that reads info from /proc/<PID>/apm and saves pertinent data to an array,  
        then iterates the PID
Run loops like the one above for cpuinfo, meminfo, and stat

我目前可以很好地读取电池电量,CPU 使用率花了我一段时间,但我想我也有。它的应用程序特定的东西让我陷入困境。对于我提到的任何统计信息,我是否需要 root 访问权限?

非常感谢!

【问题讨论】:

    标签: java android memory battery proc


    【解决方案1】:

    使用 procrank 怎么样?我知道它不是 /proc/"PID"/stat,但它没有提供您完成工作所需的一切吗?在第一列中,您给出了 PID,然后第 4/5 列分别是 PSS/USS。根据我对this link 的理解,PSS 和 USS 可以通过执行以下操作来计算内存使用量:

    PSS/[Σ(PSS)] -> 这是内存使用率%

    USS/[Σ(PSS)] -> 这是可以通过终止进程释放的内存百分比

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-24
      • 1970-01-01
      • 1970-01-01
      • 2018-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多