Android – Grow Heap(Frag Case) – 字节分配..不加载任何位图

前端之家收集整理的这篇文章主要介绍了Android – Grow Heap(Frag Case) – 字节分配..不加载任何位图前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当应用程序从“Splash”屏幕加载到“Main”页面时,会发生这种情况.它只发生在不在模拟器上的设备上:
05-17 08:10:16.627: I/dalvikvm-heap(14021): Grow heap (frag case) to 20.580MB for     2424256-byte allocation
05-17 08:10:16.666: D/dalvikvm(14021): GC_FOR_ALLOC freed 1K,3% free 21000K/21511K,paused 21ms
05-17 08:10:16.697: D/dalvikvm(14021): GC_CONCURRENT freed 116K,3% free 20885K/21511K,paused 2ms+2ms
05-17 08:10:16.720: D/dalvikvm(14021): GC_FOR_ALLOC freed 44K,4% free 20841K/21511K,paused 10ms
05-17 08:10:16.728: I/dalvikvm-heap(14021): Grow heap (frag case) to 24.533MB for 4310896-byte allocation

我使用Ecplise MAT – 字节分配解决 – Android.Graphics.Bitmap $预加载的图像…

我使用的设备是Google Nexus Prime,Android 4.0

有没有人遇到过相同的?有人可以扔一些专业知识….

解决方法

你可能试图解码一个非常大的Bitmap,导致OutOfMemory异常.这意味着您尝试实现的操作超出了您的设备上每个应用程序允许的虚拟机预算,这取决于堆内存消耗(在您的设备上显示为24 MB,可能更多在您的模拟器上,这就是为什么它不不会发生在那里!)

尝试以Bitmapby为例进行两次比较:

BitmapFactory.Options o = new BitmapFactory.Options();
o.inSampleSize = 2;
Bitmap b = BitmapFactory.decodeFile(pathToBitmap,o);

猜你在找的Android相关文章