管理大型位图android的高效方法

时间:2011-02-05 03:54:44

标签: android performance bitmap storage dalvik

我对管理大量位图的推荐/最佳做法有疑问。 (这是一个flipbook类型的应用程序,用户经过并创建新的页面......就像一堆虚拟的便签k?) 以前,我有一个包含位图的对象的arraylist,(性能良好)但我很快就遇到了dalvik vm的堆限制内存不足问题。

我后来尝试将屏幕上未显示的位图存储到sd卡作为缓存,然后根据需要抓取它们,但我发现这在手机上比以前的方法慢得多。

这个问题的最佳攻击计划是什么?

3 个答案:

答案 0 :(得分:3)

也许你可以尝试组合。将SD卡上的位图保留为缓存,当加载位图“B”时,将位图“A”和“C”加载到内存中,其中“A”和“C”是应用程序中“B”周围的位图。 / p>

答案 1 :(得分:1)

您应该同时使用强引用内存缓存和磁盘缓存,请参阅Android培训课程Displaying Bitmaps Efficiently,尤其是Caching Bitmaps课程。

答案 2 :(得分:0)

一个建议, 如果您的位图不再可用,或者您想要从内存中删除它。 你应该这样做,

bitmapObject.recycle();

这是释放位图内存的最有效方法。