使用
getRuntimeMemoryUsage()
从 Runtime.getRuntime()
获取内存使用情况
但是与分析器比较时找不到匹配项。
即探查器内存的 java 显示 22MB 但代码
getRuntimeMemoryUsage()
返回12MB。
如何获取分析器中显示的内存使用情况?
fun getRuntimeMemoryUsage(): Long {
//calculate memory usage of currently running application:
var freeSize = 0L
var totalSize = 0L
var usedSize = 0L
try {
val runtime = Runtime.getRuntime()
runtime.gc()
freeSize = runtime.freeMemory() / 1048576L
totalSize = runtime.totalMemory() / 1048576L
usedSize = (totalSize - freeSize)
val maxHeapSizeInMB = runtime.maxMemory() / 1048576L
} catch (e: Exception) {
e.printStackTrace()
}
return usedSize
}
android studio 分析器使用几种不同的方法来捕获应用程序的内存。最常见的方法是轮询“dumpsys meminfo”。然而,这对于想要在 Playstore 中发布的应用程序来说是不可行的。
您可以尝试使用这个 Debug.MemoryInfo 类来检索有关进程内存映射的各种统计信息。