在eclipse上使用DDMS,我注意到在加载新活动时,分配的内存会在一秒钟内从18 MB增加到大约53 MB,然后在完成加载时会跳回到正常的23-28 MB活性。
我的应用程序是一个打扮游戏,所以它包含了很多图像。但是,所有图像的大小都不会达到5 MB。由于它恢复到正常的23-28 MB,我相信没有泄漏。
onCreate主要用于所有视图的findViewById。
有时我收到错误:
08-16 16:16:56.160: E/AndroidRuntime(22614): FATAL EXCEPTION: main
08-16 16:16:56.160: E/AndroidRuntime(22614): java.lang.RuntimeException: Unable to start activity ComponentInfo{com......}: android.view.InflateException: Binary XML file line #243: Error inflating class <unknown>
...
08-16 16:16:56.160: E/AndroidRuntime(22614): Caused by: android.view.InflateException: Binary XML file line #243: Error inflating class <unknown>
...
08-16 16:16:56.160: E/AndroidRuntime(22614): Caused by: java.lang.reflect.InvocationTargetException
...
08-16 16:16:56.160: E/AndroidRuntime(22614): Caused by: java.lang.OutOfMemoryError
08-16 16:16:56.160: E/AndroidRuntime(22614): at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
注意OutOfMemoryError。
我该怎么办?
答案 0 :(得分:0)
我认为启动应用程序时内存峰值是由于操作系统解压缩了您在其中一个布局中使用的资源。这也可能是OutOfMemoryError异常的原因。
查看您在初始布局中使用的资源(图片等),并确保它们不会太大。