获取的内存是KB为单位,转化为M,需要除1024.
public void getmem_SELF()
{ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
List<RunningAppProcessInfo> procInfo = am.getRunningAppProcesses();
System.out.println("xxxxxxxxxxxxxxxxxxxxxxxxx"+this.getPackageName());
for (RunningAppProcessInfo runningAppProcessInfo : procInfo)
{
System.out.println(runningAppProcessInfo.processName+ String.format (",pid = %d", runningAppProcessInfo.pid));
if( runningAppProcessInfo.processName.indexOf("com.tuyoo.threecard") != -1 )
{
int pids[] = {runningAppProcessInfo.pid};
Debug.MemoryInfo self_mi[] = am.getProcessMemoryInfo(pids);
StringBuffer strbuf = new StringBuffer();
strbuf.append(" proccess Name:").append(runningAppProcessInfo.processName)
.append("\n pid:").append(runningAppProcessInfo.pid) .append("\n dalvikPrivateDirty:")
.append(self_mi[0].dalvikPrivateDirty) .append("\n dalvikPss:").append(self_mi[0].dalvikPss)
.append("\n dalvikSharedDirty:").append(self_mi[0].dalvikSharedDirty) .append("\n nativePrivateDirty:")
.append(self_mi[0].nativePrivateDirty) .append("\n nativePss:").append(self_mi[0].nativePss/1024)
.append("\n nativeSharedDirty:").append(self_mi[0].nativeSharedDirty) .append("\n otherPrivateDirty:")
.append(self_mi[0].otherPrivateDirty) .append("\n otherPss:").append(self_mi[0].otherPss)
.append("\n otherSharedDirty:").append(self_mi[0].otherSharedDirty) .append("\n TotalPrivateDirty:")
.append(self_mi[0].getTotalPrivateDirty()) .append("\n TotalPss:").append(self_mi[0].getTotalPss())
.append("\n TotalSharedDirty:").append(self_mi[0].getTotalSharedDirty());
Log.i("TEST",strbuf.toString());
System.out.println(strbuf.toString());
}
}
}
其中,TotalPss就是消耗的内存。