0

我想问你一个简单的问题。我与 java.lang.outofmemory 错误作斗争。它可能是由图片引起的,但目前我的项目中有很多未使用的导入和未使用的变量(应用程序有 7 个活动,每个活动大约有 40 个变量)。

使用未使用的导入和未使用的声明变量内存?您认为,可能是由于许多变量和导入导致的 java.lang.outofmemory 错误吗?

4

2 回答 2

2

从安卓:

位图占用大量内存,尤其是对于照片等丰富的图像。例如,Galaxy Nexus 上的相机可拍摄高达 2592x1936 像素(5 兆像素)的照片。如果使用的位图配置是 ARGB_8888(Android 2.3 以后的默认配置),则将此图像加载到内存中大约需要 19MB 内存(2592*1936*4 字节),立即耗尽某些设备上的每个应用程序的限制。

基本上,如果使用不当,图像会成为杀手。

请参阅此有关有效加载大型位图的 android 教程

具体来说,以所需分辨率从文件/资源​​加载缩放位图的代码示例。

导入在运行时对内存没有影响。他们唯一可能做的就是减慢构建时间。没有什么坏处。

于 2012-12-18T16:23:20.980 回答
0

不,变量不会在Heap应用程序中占用更多内存。这可能是由于bitmap在您的应用程序中。如果您遇到任何错误,请确保您已发布图像背景,例如

imageview.setBackgroundDrawable(null);
relativeLayout.setBackgroundDrawable(null);

或者

imageview.setBitmapImage(null);

这将删除布局中使用的可绘制图像。

于 2012-12-18T16:00:29.863 回答