2016-09-30 44 views
7

W poprzednich wydaniach Androida udało mi się uzyskać użycie procesora przy użyciu górnego połączeniaCzy istnieje sposób, aby uzyskać użycie procesora aplikacji z Android 7 (nugat)

 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())); 

Wydaje się, że Android 7 uległa zmianie bezpieczeństwo lub coś, co nie pozwala na to. Teraz, jeśli podłączysz go do Android Studio, da mi to linię z procesem procesora% 1. Jeśli uruchomię wersję Release, widzę, że nie zwraca ona żadnych linii.

Czy ktoś wie, czy istnieje zezwolenie, które można dodać, aby na to pozwolić?

Moim najlepszym przypuszczeniem jest to, że dokumenty uprawnień opisane tutaj mają coś wspólnego z tym problemem.

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

Tu jest link do innego pytania, które napisałem rozwiązanie, aby uzyskać użycie procesora na wcześniej 7 wydaniach.

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

+0

jest jakaś zmiana w tej kwestii? Wydaje mi się, że utknąłem z tym problemem. – Amritesh

+0

Nie sądzę, że będzie to naprawić. Myślę, że z punktu widzenia bezpieczeństwa Google znajduje się na drodze do ściślejszego blokowania rzeczy i jeśli nie stworzą do tego API, nie będziemy mieli dostępu. –

+0

Wygląda na to, że Google decyduje się zabrać więcej, a następnie dać mu dostęp. https://stackoverflow.com/questions/46182041/get-cpu-usage-of-a-device-running-android-8-oreo –

Odpowiedz

0

Teraz, kiedy zostały przeniesione na Oreo, wydaje się, że Google nadal zabrać tę funkcjonalność jako zagrożenie dla bezpieczeństwa, do którego byłbym wstrząśnięty gdyby otworzył się jakichkolwiek nowych API, aby go zastąpić . Zobacz następujący tracker problemów z kilkoma komentarzami od kogoś z Google. Ich najlepszą rekomendacją jest użycie /proc/self/stat zamiast/proc/stat

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