Android 管理大量位图的有效方法
我有一个关于管理大量位图的推荐/最佳实践的问题。 (这是一个“动画书”类型的应用程序,用户在其中浏览并创建新页面……就像一堆虚拟的便笺k?) 以前,我有一个保存位图的对象的arraylist(性能很好),但是我很快就遇到了dalvik vm堆限制的内存不足问题 后来我尝试将屏幕上未显示的位图作为缓存存储到sd卡上,然后按需抓取,但我发现在我的手机上这比以前的方法要慢得多Android 管理大量位图的有效方法,android,performance,bitmap,storage,dalvik,Android,Performance,Bitmap,Storage,Dalvik,我有一个关于管理大量位图的推荐/最佳实践的问题。 (这是一个“动画书”类型的应用程序,用户在其中浏览并创建新页面……就像一堆虚拟的便笺k?) 以前,我有一个保存位图的对象的arraylist(性能很好),但是我很快就遇到了dalvik vm堆限制的内存不足问题 后来我尝试将屏幕上未显示的位图作为缓存存储到sd卡上,然后按需抓取,但我发现在我的手机上这比以前的方法要慢得多 解决这个问题的最佳方案是什么?也许您可以尝试组合。将sd卡上的位图作为缓存,加载位图“B”时,将位图“A”和“C”加载到内存中
解决这个问题的最佳方案是什么?也许您可以尝试组合。将sd卡上的位图作为缓存,加载位图“B”时,将位图“A”和“C”加载到内存中,其中“A”和“C”是应用程序中围绕“B”的位图。一个建议, 如果位图不再可用或要从内存中删除它。 你应该这样做
bitmapObject.recycle();
这是释放位图内存的最佳有效方法。您应该同时使用强引用内存缓存和磁盘缓存,请参阅Android培训课程,尤其是本课程。这是许多在线相册(如facebook)使用的常用技术。他们会将下一张“n”照片预取到浏览器中。但这会产生比一次加载一张更好的性能吗?您仍然一次加载一个位图,但在内存中保留了两个位图(类似于这样)。我真的只是想看看我是否在sd卡缓存的正确轨道上,这听起来像是我。谢谢你的帮助!