Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 管理大量位图的有效方法_Android_Performance_Bitmap_Storage_Dalvik - Fatal编程技术网

Android 管理大量位图的有效方法

Android 管理大量位图的有效方法,android,performance,bitmap,storage,dalvik,Android,Performance,Bitmap,Storage,Dalvik,我有一个关于管理大量位图的推荐/最佳实践的问题。 (这是一个“动画书”类型的应用程序,用户在其中浏览并创建新页面……就像一堆虚拟的便笺k?) 以前,我有一个保存位图的对象的arraylist(性能很好),但是我很快就遇到了dalvik vm堆限制的内存不足问题 后来我尝试将屏幕上未显示的位图作为缓存存储到sd卡上,然后按需抓取,但我发现在我的手机上这比以前的方法要慢得多 解决这个问题的最佳方案是什么?也许您可以尝试组合。将sd卡上的位图作为缓存,加载位图“B”时,将位图“A”和“C”加载到内存中

我有一个关于管理大量位图的推荐/最佳实践的问题。 (这是一个“动画书”类型的应用程序,用户在其中浏览并创建新页面……就像一堆虚拟的便笺k?) 以前,我有一个保存位图的对象的arraylist(性能很好),但是我很快就遇到了dalvik vm堆限制的内存不足问题

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


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

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

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

bitmapObject.recycle();

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

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

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