android-memory - android 如何动态获取应用程序的内存使用情况,例如使用 android studio profiler 显示
问题描述
使用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 中发布的应用程序来说是不可行的。
推荐阅读
- excel - 参考数字生成单元格中“(x,y)”数据的数量
- java - isNumber 方法接受字母 D
- android - Stripe Apple Pay 沙盒测试账户
- python-3.x - 如何接受用户的文件名并将声音文件保存在python中
- angular - Electron 浏览器窗口阻止 Control+W 关闭窗口
- javascript - 如何用玩笑来监视/模拟 minimatch
- mysql - 计算每个用户mysql的不同日期
- typescript - 仅使用 prisma2 和 nexus 检索所有者数据的可能性
- scala - 在 slick 3.0 中更新多对多连接表
- sql - Laravel Eloquent Join 使用另一个表