2016-09-30 4 views
7

와 응용 프로그램의 CPU 사용량을 얻을 수있는 방법이 있나요은안드로이드 7 (누가) 나는 최고 호출을 사용하여 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())); 

은 안드로이드 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

이 문제에 어떤 업데이트가 은/proc/셀프/합계 대신에/proc 디렉토리/스탯을 사용하는 것입니다? 나는 또한이 문제에 붙어있는 것 같다. – Amritesh

+0

나는 이것에 대한 해결책이 될 것이라고 생각하지 않습니다. 나는 보안상의 관점에서 구글이 상황을보다 엄격하게 잠그는 길에 있다고 생각한다. 그리고 API를 만들지 않으면 접근 할 수 없다. –

+0

Google이 액세스를 포기하는 대신 더 멀리 떠나기로 결정한 것 같습니다. https://stackoverflow.com/questions/46182041/get-cpu-usage-of-a-device-running-android-8-oreo –

답변

0

, 구글이 떨어져 그들은 그것을 대체 할 새로운 API의 모든 종류의를 열 경우 나는 충격을받을 것입니다 보안 문제로이 기능으로 갈 계속 보인다 . 다음 문제 추적기에서 Google 담당자의 몇 가지 의견을 확인하십시오. 그들의 가장 추천

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