为什么一个基本的 android 应用程序在内存中有数百个位图?

Why are hundreds of bitmaps in memory for a basic android app?

在构建我的第一个 Android 应用程序时,我注意到应用程序启动时内存使用量已经接近 20MB。我下载了 Eclipse MAT 并查看了内容,发现内存中有成百上千的位图。其中许多并没有直接在我的项目中使用(至少没有我知道的那么多)

最大图片为 9MB: https://imagebin.ca/v/2eCK4JYLO2f2

其他的要小得多: https://imagebin.ca/v/2eCMmbFuIWsz

Android 似乎已经竭尽全力通过使用 zygote 来减少内存...那么为什么内存中已经有这么多未使用的位图?

(基本项目是一个空白 activity,使用 Android Studio,片段由文本视图组成,简单地说 "Hello World!")

我发现位图来自 Zygote 的内存占用。由于所有基于 java 的应用程序都是通过 zygote 启动的,这意味着最小内存使用量由 Zygote 使用的内存大小决定,而 Zygote 又取决于设备的显示密度。

找到答案:
Find the class that wastes memory
Locate & remedy cause of large heap size