我想记录给定应用程序在给定时间速率下的内存使用情况。我编写了代码来获取已使用的完整内存值,但不知道如何获取给定 PID 的内存使用情况。
请帮帮我
这是我用来获取内存的代码
ActivityManager localActivityManager = (ActivityManager)getSystemService("activity");
ActivityManager.MemoryInfo localMemoryInfo = new ActivityManager.MemoryInfo();
localActivityManager.getMemoryInfo(localMemoryInfo);
Log.i("",String.valueOf(localMemoryInfo.availMem));
我想我可以使用 public MemoryInfo[] getProcessMemoryInfo (int[] pids) 来获取它,但不知道如何为其编码,因为我是一个 android 初学者
ActivityManager localActivityManager = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE); // use Context.ACTIVITY_SERVICE not the literal "activity"
List<ActivityManager.RunningAppProcessInfo> procsInfo = localActivityManager.getRunningAppProcesses();
int[] pids = new int[procsInfo.size()];
for (int i = 0; i < procsInfo.size(); i++) {
ActivityManager.RunningAppProcessInfo info = procsInfo.get(i);
pids[i] = info.pid;
}
Debug.MemoryInfo[] procsMemInfo = localActivityManager.getProcessMemoryInfo(pids);
// now walk the procsMemInfo array
如果您安排一个循环计时器定期重新查询正在运行的 pid 并查询内存信息,您可以使用时间戳来计算一段时间内的内存使用情况。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)