小编Sta*_*yKh的帖子

如何找出Android 2的位图有多少可用堆大小?*?

我们的应用程序使用了很多位图.它适用于例如G1,XOOM.但是在HTC Desire上有一个OutOfMemory错误.在代码中我们使用try/catch(OutOfMemoryError e)并且所有设备(Desire除外)抛出异常,但HTC只是在没有OOM异常的情况下杀死应用程序.我们将位图的内存限制在12 Mb,似乎这个解决方案解决了这个问题,但客户在HTC Desire HD上仍有问题.即使有12 Mb的限制也有OOM.这是日志:

06-07 12:03:43.978 E/dalvikvm-heap( 29616):1140128-byte external allocation too large for this process. 
06-07 12:03:43.978 E/dalvikvm( 29616):Out of memory: Heap Size=12311KB, Allocated=9420KB, Bitmap Size=12139KB, Limit=21884KB
06-07 12:03:43.978 E/dalvikvm( 29616):Trim info: Footprint=15751KB, Allowed Footprint=15751KB, Trimmed=3440KB
06-07 12:03:43.978 E/GraphicsJNI( 29616):VM won't let us allocate 1140128 bytes
Run Code Online (Sandbox Code Playgroud)

AFAIK设备有不同的堆大小限制(G1:16mb,Droid:24 mb,Xoom 48 mb).在我看来,系统应该至少提供16 MB,但我们有12 MB的OOM.我的问题是:如何找出Android 2的位图有多少可用堆大小?*?或者请建议如何以其他方式避免此类问题.仅供参考我们不能使用较少的位图,尤其是当它在其他设备上正常工作时.在此先感谢您的帮助!

android bitmap out-of-memory htc-android

8
推荐指数
1
解决办法
5533
查看次数

标签 统计

android ×1

bitmap ×1

htc-android ×1

out-of-memory ×1