Android 应用程序中的高内存使用率 (50MB)

kru*_*ben 1 memory mobile android android-layout android-studio

我正在为一个学校项目开发一个小型 tamagotchi,我在应用程序使用的内存量方面遇到了很大的问题。起初我为应用程序分配了 200MB,经过一些研究后,我通过将 drawable 文件夹重命名为 drawable-nodpi 来轻松修复将其减少到 50MB。但这仍然远远不够。在调查问题时,我确定它与我的布局和 UI 元素有关,因为我删除了所有代码并仅使用布局启动了我的应用程序,并且内存使用量根本没有下降。

在这里你可以看到我的布局: 应用程序布局和内存使用

图像大小平均约为 30kb,如果我计算内存中可能图像的最大大小,我有大约 1.5MB。

那么所有的记忆是从哪里来的呢?这怎么可能呢?

如果你想自己看这个应用程序,你可以从github获取项目:https : //github.com/kruben95/TamaStudent

如果有人可以帮助我或给我一些提示,我会很高兴。

Ste*_*mov 5

我下载了你的项目,这里有一些建议:

1) 即使在磁盘上图像占用 30-40 kb 的图像分辨率也很高 - 在内存中它们是位图,位图占用大量内存,例如身体部位 - 1200x1980 像素,每像素 4 个字节,这在内存中为 9.5 兆字节!!??现在在得到这个位图之后,它也必须缩放它——这是额外的内存,正如你所看到的,每张图像你有超过 10 兆字节!!这是非常高的。

2)使图像分辨率降低。没有必要显示它们那么高分辨率。

3)从图像中删除不可见的部分 - 因为我看到很大的部分是清晰的,但它需要内存!

4)尝试以编程方式制作一些图像,例如圆圈等。

5)在代码中 - 如果你只需要做背景,不要使用 alpha 来查看,直接在颜色中设置这个 alpha:#00FFFFFF - 这里是白色和 alpha 0。如果你在视图上使用 alpha 它将需要额外的内存重绘(降低性能)。

6)谷歌互联网为您的相关主题标签Best practices,你会发现很多有用的信息)