Android UI图像内存问题

时间:2016-08-15 06:25:34

标签: android performance android-resources android-bitmap

我正在构建一个包含非常大尺寸图像的应用程序。

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

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

使用Android Drawable Importer将图像分成每个可绘制目录。

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

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

第二个是,如果它太多了,我该怎么做以及如何减少内存使用?

1 个答案:

答案 0 :(得分:3)

使用图像时请记住,压缩格式(jpg,png ..)和位图之间存在巨大差异。计算位图的大小非常简单,宽度*高度* 4个字节(假设位图具有默认配置argb888)。因此压缩的全高清图像是xy kb,解压缩时将占用8294400字节(~8mb)。因此,我减少内存消耗的建议是......缩小你的图像。
你要问的是80-120 mb是否太多,好像看起来很多但是它真的取决于你'干嘛。强制垃圾收集会发生什么情况(设备监视器中应该有一个图标)?

另外要考虑的是如何解压缩图像,参考this并使用图书馆(Picasso,Glide ..)。