0

我想以给定的时间速率记录给定应用程序的 ram 使用情况。我编写了代码来获取使用的完整内存值,但不知道如何获取给定 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 初学者

4

1 回答 1

2
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 并查询内存信息,您可以使用时间戳来计算一段时间内的内存使用情况。

于 2013-04-05T08:45:18.070 回答