Есть ли какой-либо API, которым мы можем получить ЦП или Использование памяти андроида?
Я попробовал один код как указано ниже:
package com.infostretch.mainactivity;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
public class CPULoad
{
long total = 0;
long idle = 0;
float usage = 0;
public CPULoad()
{
readUsage();
}
public float getUsage()
{
readUsage();
return usage;
}
private void readUsage()
{
try
{
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream("/proc/stat")), 1000);
String load = reader.readLine();
reader.close();
String[] toks = load.split(" ");
long currTotal = Long.parseLong(toks[2]) + Long.parseLong(toks[3]) + Long.parseLong(toks[4]);
long currIdle = Long.parseLong(toks[5]);
this.usage = (currTotal - total) * 100.0f / (currTotal - total + currIdle - idle);
this.total = currTotal;
this.idle = currIdle;
}
catch(IOException ex)
{
ex.printStackTrace();
}
}
}
Действительно ли это - корректный способ сделать это?
Проверьте класс Debug
. http://developer.android.com/reference/android/os/Debug.html
Debug.getNativeHeapAllocatedSize()
В нем есть методы для получения используемой нативной кучи, которая используется внешними битмапами в вашем приложении. Что касается кучи, которую приложение использует внутри, вы можете увидеть это в инструменте DDMS, который поставляется с Android SDK и также доступен через Eclipse.
Собственная куча + куча, указанная в DDMS, составляют общую кучу, которую выделяет ваше приложение.
Для использования процессора я не уверен, что есть что-то доступное через API/SDK.