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

相關問題