Android UI 图片内存问题

Android UI images memory issue

我正在开发一个包含非常大图像的应用程序。ui

我的几乎所有 UI 组件都是由 ImageView 组成的。

我只需要在我的第一个 activity 上显示 12 个图像(ui 个组件),但它在启动时消耗 80mb。

使用 Android Drawable Importer 将图像分成每个 drawable 目录。

通过这样做,我能够将运行时内存(我可以在 Android 工作室的设备监视器上看到)减少一半,但它仍然消耗 80~120mb 的内存,我认为这是太多了。

第一个问题是,对于一个四屏(两个活动,三个片段)的应用程序来说,80~120mb 是不是太多了?

第二个是,如果它太多了,我该怎么做才能减少内存使用量?

处理图像时请记住,压缩格式(jpg、png..)和位图之间存在巨大差异。计算 Bitmap 的大小非常简单,它是 width * height * 4 字节(假设 bitmap 具有默认配置 argb888)。因此,压缩后的全高清图像为 xy kb,解压后将占用 8294400 字节(~8mb)。所以我减少内存消耗的建议是......缩小你的图像。

你问的是 80-120 MB 是否太多了,看起来很多但它真的取决于你在做什么。如果你强制垃圾收集会发生什么(设备监视器中应该有一个图标)?

另一个需要考虑的是如何解压缩图像,参考this和使用图书馆(Picasso、Glide..)。