diff options
| author | 2019-09-03 18:20:15 -0700 | |
|---|---|---|
| committer | 2019-09-04 15:50:29 -0700 | |
| commit | 6f0ca435d6b1c29200a9ec859d2509f3e60d2d73 (patch) | |
| tree | 54861de996e75cf447d891eae76f9d81a27fc807 | |
| parent | d1c89a2e35a1baa6111481bf55bb17952d4cc305 (diff) | |
Teach android.os.Process to use new libmeminfo API
Test: device boots
Bug: 140456977
Change-Id: Iff4f3fc88af2dfe9faafcfa94e28fa6e5f5ef0eb
| -rw-r--r-- | core/jni/android_os_Debug.cpp | 8 | ||||
| -rw-r--r-- | core/jni/android_util_Process.cpp | 7 |
2 files changed, 10 insertions, 5 deletions
diff --git a/core/jni/android_os_Debug.cpp b/core/jni/android_os_Debug.cpp index 13e1dfa00160..cf8df287a6db 100644 --- a/core/jni/android_os_Debug.cpp +++ b/core/jni/android_os_Debug.cpp @@ -564,11 +564,13 @@ static void android_os_Debug_getMemInfo(JNIEnv *env, jobject clazz, jlongArray o // Read system memory info including ZRAM. The values are stored in the vector // in the same order as MEMINFO_* enum - std::vector<uint64_t> mem(MEMINFO_COUNT); - std::vector<std::string> tags(::android::meminfo::SysMemInfo::kDefaultSysMemInfoTags); + std::vector<std::string_view> tags( + ::android::meminfo::SysMemInfo::kDefaultSysMemInfoTags.begin(), + ::android::meminfo::SysMemInfo::kDefaultSysMemInfoTags.end()); tags.insert(tags.begin() + MEMINFO_ZRAM_TOTAL, "Zram:"); + std::vector<uint64_t> mem(tags.size()); ::android::meminfo::SysMemInfo smi; - if (!smi.ReadMemInfo(tags, &mem)) { + if (!smi.ReadMemInfo(tags.size(), tags.data(), mem.data())) { jniThrowRuntimeException(env, "SysMemInfo read failed"); return; } diff --git a/core/jni/android_util_Process.cpp b/core/jni/android_util_Process.cpp index a52a7ed982ec..7cfc5444a5a4 100644 --- a/core/jni/android_util_Process.cpp +++ b/core/jni/android_util_Process.cpp @@ -31,6 +31,7 @@ #include <android-base/unique_fd.h> #include <algorithm> +#include <array> #include <limits> #include <memory> #include <string> @@ -630,14 +631,16 @@ static int pid_compare(const void* v1, const void* v2) static jlong android_os_Process_getFreeMemory(JNIEnv* env, jobject clazz) { - static const std::vector<std::string> memFreeTags = { + std::array<std::string_view, 2> memFreeTags = { ::android::meminfo::SysMemInfo::kMemFree, ::android::meminfo::SysMemInfo::kMemCached, }; std::vector<uint64_t> mem(memFreeTags.size()); ::android::meminfo::SysMemInfo smi; - if (!smi.ReadMemInfo(memFreeTags, &mem)) { + if (!smi.ReadMemInfo(memFreeTags.size(), + memFreeTags.data(), + mem.data())) { jniThrowRuntimeException(env, "SysMemInfo read failed to get Free Memory"); return -1L; } |