Windows의 작업 관리자와 비슷한 Android에서 전반적인 CPU 사용량을 얻고 싶습니다. Android에 포함 된 top
프로그램의 결과를 구문 분석 할 수 있지만 같은 일을하는 API 호출이 있으면 더 좋을 것입니다.Android에서 CPU 사용 통계를 얻는 방법은 무엇입니까?
모든 포인터?
Windows의 작업 관리자와 비슷한 Android에서 전반적인 CPU 사용량을 얻고 싶습니다. Android에 포함 된 top
프로그램의 결과를 구문 분석 할 수 있지만 같은 일을하는 API 호출이 있으면 더 좋을 것입니다.Android에서 CPU 사용 통계를 얻는 방법은 무엇입니까?
모든 포인터?
"DevTools"프로젝트를 참조 할 수 있습니다.
당신이 그런 ActivityManager.RunningAppProcessInfo, ActivityManager.RunningTaskInfo, 등 많은 정보를 얻을 수 있습니다 ActivityManager 사용...
하지만 확실하지 않다 결과 것 같은 '최고'명령과.
은 당신이 사용할 수있는 (안 각 프로세스에 대해) 전체 CPU 사용에 대한 ActivityManager
를 참조하십시오
/**
*
* @return integer Array with 4 elements: user, system, idle and other cpu
* usage in percentage.
*/
private int[] getCpuUsageStatistic() {
String tempString = executeTop();
tempString = tempString.replaceAll(",", "");
tempString = tempString.replaceAll("User", "");
tempString = tempString.replaceAll("System", "");
tempString = tempString.replaceAll("IOW", "");
tempString = tempString.replaceAll("IRQ", "");
tempString = tempString.replaceAll("%", "");
for (int i = 0; i < 10; i++) {
tempString = tempString.replaceAll(" ", " ");
}
tempString = tempString.trim();
String[] myString = tempString.split(" ");
int[] cpuUsageAsInt = new int[myString.length];
for (int i = 0; i < myString.length; i++) {
myString[i] = myString[i].trim();
cpuUsageAsInt[i] = Integer.parseInt(myString[i]);
}
return cpuUsageAsInt;
}
private String executeTop() {
java.lang.Process p = null;
BufferedReader in = null;
String returnString = null;
try {
p = Runtime.getRuntime().exec("top -n 1");
in = new BufferedReader(new InputStreamReader(p.getInputStream()));
while (returnString == null || returnString.contentEquals("")) {
returnString = in.readLine();
}
} catch (IOException e) {
Log.e("executeTop", "error in getting first line of top");
e.printStackTrace();
} finally {
try {
in.close();
p.destroy();
} catch (IOException e) {
Log.e("executeTop",
"error in closing and destroying top process");
e.printStackTrace();
}
}
return returnString;
}
그것으로 재미 유무 :
CPU 사용 또는 시간 정보를 찾을 수 없음 거기 (또는 나는 그것을 놓쳤는가?), 다른 것의 사이에서서만 기억 사용법. CPU 사용량이 – yuku
인 경우 CPUGauge.cpp를 참조 할 수 있습니다. 원하는 정보의 "공개 API"가없는 것 같습니다. 또는 "/ proc/stat"를 직접 구문 분석해야합니다. –
참고로 다음은 CPUGauge 소스입니다 https://android.googlesource.com/platform/frameworks/native/+/a6938ba/libs/surfaceflinger/CPUGauge.cpp –