gpt4 book ai didi

Android 图像缓存 - 如何?

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:01:36 25 4
gpt4 key购买 nike

我认为它已经问了又问了,但仍然有些事情我不太明白。

我尝试了两种不同的方法:

  1. 将所有图片保存在内存中,当开始超过一定限制时,开始删除它们
  2. 让 Android 使用 SoftReferences 解决这个问题

在 2. 中,有时我在分配它们的那一秒就清理了它们!而且我不会分配太多 - 30-40 张 50x50 像素的图像。

所以我坚持一个。问题是限制是多少?

  1. 我能从设备上得到一些关于我还剩下多少位图内存的可靠信息吗?我做了一些研究,观察 DDMS 值,它占用越来越多的空间(如果我不清理)直到它爆炸。前一秒还剩200K,下一秒系统又提供2M...
  2. 我目前正在使用一些基于设备型号或屏幕尺寸的启发式决策。我认为从长远来看这是死胡同。在某些手机上出现内存异常,在其他手机上完全免费。
  3. 是否有第三种解决方案,正确的解决方案?

最佳答案

最重要的问题:您是否recycle()-ing 您的位图?这对于 Gingerbread 之前的应用程序非常重要(也许对于 Gingerbread 之后的应用程序也是如此)。

正在观看 Memory Management for Android Apps session from Google I/O 2011帮助我更好地理解了 Android 开发的特殊性。

该视频提到了一个名为 MAT 的工具 - Memory Analyzer - 这对于确定内存中是否存在已泄漏的对象很有用。您拥有的可能比您认为的 30-40 多。

要查看和/或记录堆的当前大小等,我建议使用 this answer about Android Out of Memory exceptions 中的代码.

关于Android 图像缓存 - 如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6875847/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com