ActivityManager.MemoryInfo和/ proc / meminfo文件具有不同的值

时间:2014-10-14 06:08:07

标签: android linux performance memory performance-testing

我正在尝试查找设备上的总可用内存和设备的总内存使用情况。

我找到了两种方法。

1)从/ proc / meminfo文件中读取统计信息 2)使用Android的ActivityManger.MemoryInfo API

这两种方式都会返回不同的值。

1 个答案:

答案 0 :(得分:1)

这很具有讽刺意味,但ActivityManger.MemoryInfo.availMem的实施包括来自/proc/meminfo MemFree 缓存。这可以追溯到android_util_Process.cpp

Android.os.Process.getFreeMemory()的原生实现
`static jlong android_os_Process_getFreeMemory(JNIEnv* env, jobject clazz)
{
    static const char* const sums[] = { "MemFree:", "Cached:", NULL };
    static const size_t sumsLen[] = { strlen("MemFree:"), strlen("Cached:"), 0 };
    return getFreeMemoryImpl(sums, sumsLen, 2);
}`