android 如何动态获取应用程序的内存使用情况,例如使用 android studio profiler 进行显示

问题描述 投票:0回答:2

使用

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-memory android-profiler
2个回答
0
投票

android studio 分析器使用几种不同的方法来捕获应用程序的内存。最常见的方法是轮询“dumpsys meminfo”。然而,这对于想要在 Playstore 中发布的应用程序来说是不可行的。


0
投票

您可以尝试使用这个 Debug.MemoryInfo 类来检索有关进程内存映射的各种统计信息。

© www.soinside.com 2019 - 2024. All rights reserved.