gpt4 book ai didi

Android:位图、软引用和 OOM?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:07:19 24 4
gpt4 key购买 nike

我在垂直 LinearLayout 中有一系列 View 。每个 View 在滚动到时生成并绘制一个位图。出于性能原因,我宁愿不在每次调用 onDraw() 时都生成位图,但出于内存原因,我无法保留对位图的硬引用。我可以使用关于我应该采取的策略的建议。

我已经尝试过明显的路线:生成位图,然后用 SoftReference 包装它。这失败了有两个原因。 1. 引用文献的收集比我预期的要热切得多。 2. 我仍然会 OOM!这是令人震惊的,因为没有 Bitmap 特别大,所以单个 View 不应该导致 OOM,让我假设 OOM 发生是因为有问题的 SoftReference(s) 没有被释放的机会。此外,当我的应用程序分配的堆大小为 6mb(根据 DDMS View )时,会发生 OOM,我希望它在抛出 OOM 之前增长到 16mb。

有什么建议吗?

最佳答案

问题是位图使用终结器,因此,在实际释放 native 内存之前可能需要几次 GC 传递。这是我们正在努力做得更好的东西。

关于Android:位图、软引用和 OOM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4347411/

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