android内存优化方法

1:数据结构优化

    1. 频繁的字符串拼接用stringBuilder,用+的方式拼接会产生中间字符串内存块,stringBuilder拼接的效率是+方式拼接的n倍,特别是很多字符串拼接。

    2. ArrayMap或者SparseArray替换hashMap,占用内存少,使用效率比hashmap高,使用方法是一样的。

    3. 内存抖动:抖动是锯齿形的很快升落,这一般是变量使用不当造成,一下申请很多变量空间,一会不用了,一会又申请很多,一会又不用了,一会又申请很多重复造成抖动。

2:对象的复用:使内存耗用可以少一点。

2.1)recycleview中item view的复用

2.2)避免在onDraw方法里执行对象的创建,因为界面,图像或者view一有变动,ondraw就会重新执行一次,如果在ondraw里面执行对象创建,会影响ondraw的绘制时间,如果执行对象创建时间长,你的ui就会卡顿。Ondraw频繁执行的,频繁创建对象,效率低,创建对象优先放ondraw外面。

3:避免内存泄漏

  1. 上下文尽量使用application的上下文,不是activity的上下文。

4:优化OOM问题的方法

  1. 加载单张bitmap,有缩放比例加载,解码格式加载(4像素变2像素),局部加载(只显示中间区域,滑动显示前后区域,长图加载的模式)等方式,基本解决绝大部分的图片加载OOM问题。Glide底层估计就是这么实现的。

  2. 加载多张bitmap通过软引用方式管理,主要是最早用的最先释放,最近用的最后释放。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值