【问题标题】:Memory issues with Android app imagesAndroid 应用图像的内存问题
【发布时间】:2016-12-12 21:09:11
【问题描述】:

我的 android 应用程序存在一些内存问题,根据 Android Studio 的内存跟踪工具,它在启动时已经分配了 50+ MB,具体取决于具体情况。

跟踪工具报告说,其中很大一部分是因为我的背景图片和我的 5 个 ImageButton。

我不明白为什么,因为我的图片是:

背景: 184 kb 变成 40 MB

imageButtons: 每个 10kb(其中 5 个),它们变成 7MB 和 3MB

如果它们原本那么小,怎么会占用这么多 MB?以及如何改进?

这个(附件)是我在跟踪工具中看到的

背景图片

5 个图像按钮

这就是我加载背景图像的方式,例如:

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:id="@+id/backgroundImage"
    android:scaleType="centerCrop"
    />

【问题讨论】:

  • 你的问题是什么?
  • @Code-Apprentice 足够公平,已更新

标签: android image performance android-studio memory


【解决方案1】:

您可以通过将图像宽度乘以高度乘以 3(对于 RGB)或乘以 4(对于具有 alpha 通道的 RGB)来估算占用未压缩图像的内存量

在我的应用程序中,我使用 OpenGL ETC1 压缩作为背景。

宽 x 高 |字节大小

1024x1024 | 524388

2048x2048 | 2097252

我认为这是在设备内存中存储大图像并快速绘制它们的最有效方法。 我也没有看到不支持 ETC 1 压缩的 Android 设备。

这方法不简单,但最有效。

所以首先尝试减小图像的大小和颜色深度 :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-06
    • 2011-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多