Android 常用的内存优化方法

常用的内存优化方法:

         代码优化

         Bitmap优化

         ListView优化

         界面更新及线程优化

        数据库优化

 

 

       代码优化:

                    尽量减少对某些资源和对外象的长期的引用,

                      1、由于我们程序的失误,长期保持某些资源(如Context)的引用,造成内存泄露,资源造成得不到释放。应该尽量避免static成员变量引用资源耗费过多的实例,比如Context。

                      2、Context尽量使用Application Context,因为Application的Context的生命周期比较长,引用它不会出现内存泄露的问题。

                      3、 使用WeakReference代替强引用。比如可以使用WeakReference mContextRef

        Bitmap优化:

                     1、及时的销毁。

                 虽然,系统能够确认Bitmap分配的内存最终会被销毁,但是由于它占用的内存过多,所以很可能会超过java堆的限制。因此,在用完Bitmap时,要及时的recycle掉。recycle并不能确定立即就会将Bitmap释放掉,但是会给虚拟机一个暗示:“该图片可以释放了”。
                2、设置一定的采样率。

有时候,我们要显示的区域很小,没有必要将整个图片都加载出来,而只需要记载一个缩小过的图片,这时候可以设置一定的采样率,那么就可以大大减小占用的内存。如下面的代码:

               3、巧妙的运用软引用(SoftRefrence)

               4、图片尽量使用9path图片

               5、颜色配置如果对图片要求质量高则设置ARGB_8888(一个像素4个字节),要求一般则设置为ARGB_4444(一个像素2个字节),,要求较低则使用ALPHA_8(一个像素1个字节),

       ListView优化

               使用viewHolder减少对象的创建

               使用convertView使用已创建过的对象

               尽量使用分批加载或分页加载

               在快速滑动的时候不更新当前条目的内容(根据listView的onScrollView

               图片使用三级缓存策略

       界面更新及线程优化

                    不要在主线程中做耗时的操作,如果有耗时的操作需要另开线程

                    在应用中不要开太多的线程,线程太多无法控制线程的生命周期,导致内存泄漏

                    尽量使用线程池

          数据库优化

                     在使用完数据库以后尽量关闭连接

                     使用索引增加查询速度

                      尽量使用联合查询 避免多次查询

                      尽量使用事务

 

  

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值