我正在尝试编写一个 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 访问权限?
非常感谢!
最佳答案
使用 procrank 怎么样?我知道它不是/proc/"PID"/stat,但它没有提供您完成这项工作所需的一切吗?在第一列中,您将获得 PID,然后第 4/5 列分别是 PSS/USS。根据我对this link的理解通过执行以下操作,PSS 和 USS 可用于计算内存使用量:
PSS/[Σ(PSS)] -> 这是内存使用率 %
USS/[Σ(PSS)] -> 这是可以通过终止进程释放的内存百分比
关于java - 如何在 Android 上通过应用程序确定资源分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21173396/