我想獲得Android上的整體CPU使用率,類似於Windows的任務管理器。我可以解析Android中包含的top
程序的輸出,但是如果有一個API調用執行相同的操作,那會更好。如何在Android上獲取CPU使用情況統計信息?
任何指針?
我想獲得Android上的整體CPU使用率,類似於Windows的任務管理器。我可以解析Android中包含的top
程序的輸出,但是如果有一個API調用執行相同的操作,那會更好。如何在Android上獲取CPU使用情況統計信息?
任何指針?
您可以參考「DevTools」項目。
使用ActivityManager你可以得到很多信息,如ActivityManager.RunningAppProcessInfo,ActivityManager.RunningTaskInfo,...
但我不知道結果會一樣的「頂」命令。
有關完整的CPU使用率(不是每個進程),您可以使用:
/**
*
* @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使用率或時間信息可以發現那裏(或者我錯過了嗎?),只有內存使用等等。 – yuku 2010-03-22 02:49:59
CPU使用率,你可以參考CPUGauge.cpp,我認爲沒有「公共API」這些你想要的信息。 或者你必須自己解析「/ proc/stat」。 – 2010-03-22 06:07:02
供參考,這裏是CPUGauge的來源https://android.googlesource.com/platform/frameworks/native/+/a6938ba/libs/surfaceflinger/CPUGauge.cpp – 2016-12-20 20:40:41