如何在Android应用当中避免内存溢出问题
一、内存溢出
现在的智能手机内存已经足够大,但是对于一个应用程序来说智能手机当中稀缺的内存,仍然是应用程序的一大限制。在Android应用程序开发当中,最常见的内存溢出问题(OOM)是在加载图片时出现的,尤其是在不知道图片大小的情况下。
潜在的内存溢出操作主要包括以下几点:
- 从网络当中加载用户特定的图片。因为直到我们在下载图片的时候我们才知道图片的大小。
- 向Gallery加载图片。因为现在智能手机的摄像头有很高的分辨率,在加载图片的时候需要最图片进行处理,然后才能正常的使用。
二、解决内存溢出问题
原文(Downsampling为了好理解,解释为,程序A)。程序A通过调整相邻的像素,同时使其均衡化来降低图片的分辨率。因为不管问题图片是因为太大而不能再手机上正常显现,这个图片都会缩短其宽度以在ImageView当中显示,当图片在ImageView当中显示时,我们会因为加载一些没有必要的原始图片而浪费掉内存。
因此,更加有效的加载图片的时机是在其初始化处理的时候。
以下是处理代码:
三、AQuery
当在Android应用程序开发当中使用AQuery组件时,处理这个问题会变的更加的简单。1、当从网络当中下载图片时,我们仅仅需要以下的几句代码:
2、当加载已有图片时,我们需要的代码如下:
原文地址:http://blog.androidquery.com/2011/05/down-sample-images-to-avoid-out-of.html
四、Android Query组件介绍
Android Query是以开源项目,项目地址为:http://code.google.com/p/android-query/
其主要包括以下几个方面的代码:
![](http://my.csdn.net/uploads/201204/08/1333893210_3325.png)
详细信息请访问android query组件地址:http://code.google.com/p/android-query/