【问题标题】:Is there a way to get Application CPU usage with Android 7 (nougat)有没有办法使用 Android 7(牛轧糖)获得应用程序 CPU 使用率
【发布时间】:2017-02-09 08:06:54
【问题描述】:

在以前的 Android 版本中,我可以通过使用 top call 来获取 CPU 使用率

        String[] cmd = {
                "sh",
                "-c",
                "top -m 1000 -d 0 -n 1 | grep \"" + aAppPID + "\""};
        lProcess = Runtime.getRuntime().exec(cmd);
        BufferedReader lReader = new BufferedReader(new InputStreamReader(lProcess.getInputStream()));

Android 7 似乎已更改了安全性或其他内容不允许这样做。现在,如果附加到 Android Studio,它将给我一条 CPU % 为 1 的行。如果运行发布版本,我看到它不返回任何行。

有谁知道是否可以添加一个权限来允许这个?

我最好的猜测是此处记录的权限说明与此问题有关。

https://developer.android.com/about/versions/nougat/android-7.0-changes.html#perm

这是另一个问题的链接,我发布了一个在 Pre-7 版本中获取 CPU 使用率的解决方案。

How do I get the total CPU usage of an application from /proc/pid/stat?

【问题讨论】:

  • 这个问题有更新吗?我似乎也被这个问题困住了。
  • 我认为不会有解决此问题的方法。我认为从安全的角度来看,Google 正在将事情锁定得更紧,除非他们为此创建 API,否则我们将无法访问。
  • Google 似乎决定拿走更多而不是归还访问权限。 stackoverflow.com/questions/46182041/…

标签: android android-permissions android-7.0-nougat


【解决方案1】:

现在我们已经转向 Oreo,看来 Google 出于安全考虑继续取消此功能,如果他们开放任何类型的新 API 来替换它,我会感到震惊。请参阅以下问题跟踪器,其中包含来自 Google 某人的几个 cmets。他们最好的建议是使用 /proc/self/stat 而不是 /proc/stat

https://issuetracker.google.com/issues/37140047

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-30
    相关资源
    最近更新 更多