在android中的进程的内存信息
问题描述:
我想要计算android中单个进程使用的内存,为此我卡在这一点。在android中的进程的内存信息
ActivityManager am=(ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
android.os.Debug.MemoryInfo[] mem=am.getProcessMemoryInfo(ProcessId);
从上面的“MemoryInfo”我应该考虑什么?
{mem.getTotalPss() or mem.getTotalPrivateDirty() or mem.getTotalSharedDirty()}
得到的RAM的过程中使用的量。
请帮我这个。提前致谢。
答
mem.getTotalPss()为您提供了该进程在KB
答
占总内存棉花糖开始你在MemoryInfo一些辅助功能,你可以查询。它也可以给你一个解析(和额外)信息的列表。
请注意,至少在s6 summary.graphics总是给出0。如果一个进程不是一个art/dalvik android进程,那么它将在所有返回字符串上给出0。它会将它们返回到这张地图。
int pids[] =new int[1];
pids[0]= pID;
Debug.MemoryInfo [] mems1= am.getProcessMemoryInfo(pids);
if(Build.VERSION.SDK_INT >= 23)
if(mems1.length==1) {
Debug.MemoryInfo meminfo=new Debug.MemoryInfo();
Map<String, String> mems = mems1[0].getMemoryStats();
for (Map.Entry<String, String> entry : mems.entrySet())
{
ret+=" k: "+entry.getKey()+":"+entry.getValue();
// addLineToSb(di, "m23: "+entry.getKey() + ":"+entry.getValue()+"kB");
}
}