使用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"。但是,对于想要在Play商店中发布的应用程序来说,这是不可行的。