• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2015 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "base/android/java_runtime.h"
6 
7 #include "base/numerics/safe_conversions.h"
8 
9 // Must come after all headers that specialize FromJniType() / ToJniType().
10 #include "base/android_runtime_jni_headers/Runtime_jni.h"
11 
12 namespace base {
13 namespace android {
14 
GetMemoryUsage(uint64_t * total_memory,uint64_t * free_memory)15 void JavaRuntime::GetMemoryUsage(uint64_t* total_memory,
16                                  uint64_t* free_memory) {
17   JNIEnv* env = jni_zero::AttachCurrentThread();
18   base::android::ScopedJavaLocalRef<jobject> runtime =
19       JNI_Runtime::Java_Runtime_getRuntime(env);
20   *total_memory = checked_cast<uint64_t>(
21       JNI_Runtime::Java_Runtime_totalMemory(env, runtime));
22   *free_memory = checked_cast<uint64_t>(
23       JNI_Runtime::Java_Runtime_freeMemory(env, runtime));
24 }
25 
26 }  // namespace android
27 }  // namespace base
28