2016-09-30 43 views
7

在Android中的以前的版本我是能够通过使用顶级呼叫来获取CPU使用率有没有办法让应用程序的CPU使用率与Android 7(牛轧糖)

 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?

+0

有没有在这个问题上的任何更新?我似乎也被困在这个问题上。 – Amritesh

+0

我不认为会有这样的解决方案。我认为,从安全的角度来看,Google正在把事情锁定得更紧密,除非他们为此创建了一个API,否则我们将无法访问。 –

+0

谷歌似乎决定采取更多的行动,而不是让回访。 https://stackoverflow.com/questions/46182041/get-cpu-usage-of-a-device-running-android-8-oreo –

回答

0

现在,我们已经移动到奥利奥,似乎谷歌继续拿走这个功能作为一个安全问题,对此,如果他们开辟了任何一种新的API来替换它,我会感到震惊。通过Google的某个人的一些评论,查看以下问题跟踪器。他们最好的建议是使用 的/ proc /自/ STAT代替的/ proc/STAT

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

相关问题