Android 5.0 不支持 BitmapFactory.Options inPurgeable

2024-04-14

我正在学习fresco lib of Facebook。我看到存储位图ashmem选项是inPurgeable很好。我们需要非常关心内存管理,但会减少OutOfMemoryError on Davilk heap。 我想知道为什么Android 5.0不继续支持BitmapFactory.Options inPurgeable.
有什么变化吗ART?
谁能为我解释一下原因吗?提前致谢。

EDIT
根据埃德·乔治的回答:
为什么 Facebook 工程师从 Android 3.0 -> 4.4 开始仍然使用 inPurgeable?
他们是否会牺牲 Dalvik 堆分配来换取性能可预测性?


Fresco 中回答了这个问题博客文章 https://code.facebook.com/posts/366199913563917。请参阅“可清除位图”和“鱼与熊掌兼得”部分。如果您使用 Fresco,您将获得更快的性能和更少的 OOM,并且不会失去性能可预测性。

请注意,尽管 Fresco 在管理位图内存方面也遇到了很多麻烦,但要非常小心地避免内存泄漏并尽快关闭位图。如果您尝试自己使用 NDK 而不是使用 Fresco,则需要同样小心。

谷歌本可以构建一个类似 Fresco 的解决方案作为 Android API 的一部分,但他们选择不这样做。公平地说,Android 5.0 有许多改进,使位图分配比以前更轻松。像位图这样的大对象被放置在堆上单独的内存空间中并单独进行垃圾收集,这样速度要快得多。所以也许他们觉得这就足够了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 5.0 不支持 BitmapFactory.Options inPurgeable 的相关文章

随机推荐