我有一个问题,因为在 android 文档中找不到任何相关内容。
当我在 Android Studio 中运行一个简单的应用程序(来自 Android Studio 的通用项目或谷歌示例应用程序)时,我会检查初始本机内存。可以说它的 17 mb。如果我改变了几次方向,那么本机内存将达到 40mb,如果我强制 GC,内存将下降到 23-25。如果我这样做几次,在 GC 之后内存将保持在 23-25。那么这些额外的 MB 是从哪里来的呢?
当然没有内存泄漏,因为我检查了它并且本机内存会不断增加。
android是否保留某种缓存?
此外,如果在应用程序中我使用库 ex retrofit2、glide 等,本机内存将增加,但在初始本机内存的限制内 +20mb。
日志堆:
Log.d("tag", "debug. =================================");
Log.d("tag", "debug.heap native: allocated " + df.format(allocated) + "MB of " + df.format(available) + "MB (" + df.format(free) + "MB free)");
Log.d("tag", "debug.memory: allocated: " + df.format(new Double(Runtime.getRuntime().totalMemory() / 1048576.0)) + "MB of " + df.format(new Double(Runtime.getRuntime().maxMemory() / 1048576.0)) + "MB (" + df.format(new Double(Runtime.getRuntime().freeMemory() / 1048576.0)) + "MB free)");