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?
jest jakaś zmiana w tej kwestii? Wydaje mi się, że utknąłem z tym problemem. – Amritesh
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. –
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 –