【问题标题】:Efficient way to manage large array of bitmaps android管理大量位图android的有效方法
【发布时间】:2011-02-05 03:54:43
【问题描述】:

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

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

解决这个问题的最佳方案是什么?

【问题讨论】:

    标签: android performance bitmap storage dalvik


    【解决方案1】:

    也许你可以尝试一个组合。将位图保存在 sd 卡上作为缓存,当加载位图“B”时,将位图“A”和“C”加载到内存中,其中“A”和“C”是应用中围绕“B”的位图。

    【讨论】:

    • 这是许多在线相册(如 facebook)使用的常用技术。他们将下一张照片预取到浏览器中。
    • 但这会比一次加载一个产生更好的性能吗?您仍然一次加载一个位图,但您在内存中保留了两个(类似的东西)。我真的只是想看看我是否在正确的轨道上缓存到 sd 卡,听起来我是。感谢您的帮助!
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      bitmapObject.recycle();
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-11-09
        • 1970-01-01
        • 2013-07-18
        • 2011-03-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多