欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

android 开发注意点

程序员文章站 2022-07-04 08:26:54
...

android app开发中,OOM错误一般是由于程序设计不当引起的。

大多数情况下,如果Activity中加载了图片,关闭页面时又没有释放资源导致Memory Leak,程序就很容易由于OutofMemory而强行关闭。

 

几条可能有用的应对措施:

1)在Activity的onDestroy方法中,将所有该Activity加载的图片置为null,这样至少保证图片资源能够被虚拟机回收。

2)从网络读取图片资源时,先取得图片的size和屏幕的宽、高、分辨率,然后按比例缩放,只取合适大小的图片。

3)需要加载的图片集中管理,并使用Soft Reference引用图片(注意处理图片资源不可用的异常)。

 

几条可能没用的应对措施:

1)将Drawable设置为View的Background时,设置Drawable.setCallback(null),取消对View的引用。

2)调用Bitmap的recycle方法,对于Drawable,先用BitmapDrawable.getBitmap()方法取得Bitmap。

3)尽量直接取到可用的图片,避免中间转换步骤(Resize、Rotate等等)。

 

根本的解决方法:

做严格的Code Review,找出Memory Leak的原因,并释放掉这些Object。

相关标签: Drawable OO