有没有办法通过Android 7(牛轧糖)获得应用程序CPU使用率

时间:2016-09-30 17:12:55

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

在以前的Android版本中,我可以通过使用热门呼叫来获取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

这是另一个问题的链接,我发布了一个解决方案,以便在7版之前的版本中获得CPU使用率。

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

1 个答案:

答案 0 :(得分:0)

现在我们已经转移到奥利奥,似乎谷歌继续将此功能作为一个安全问题,如果他们打开任何类型的新API来取代它,我会感到震惊。请参阅以下问题跟踪器,其中包含Google的某些人的评论。他们最好的建议是使用 / proc / self / stat而不是/ proc / stat

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