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

GR *_*voy 7 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()));
Run Code Online (Sandbox Code Playgroud)

似乎Android 7已经改变了安全性或者不允许这样做的东西.现在,如果附加到Android Studio,它将为我提供CPU%为1的行.如果运行发行版本,我发现它不会返回任何行.

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

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

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

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

如何从/ proc/pid/stat获取应用程序的总CPU使用率?

GR *_*voy 0

现在我们已经转向 Oreo,谷歌似乎出于安全考虑而继续取消此功能,如果他们开放任何新的 API 来取代它,我会感到震惊。请参阅以下问题跟踪器以及 Google 人员的一些评论。他们最好的建议是使用 /proc/self/stat 而不是 /proc/stat

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