继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

APP内存优化

龙西岳
关注TA
已关注
手记 7
粉丝 14
获赞 101

1、数据结构优化

频繁拼接字符串用StringBuilder(线程不安全,可变,比String高效,String不可变,每次赋值都是重新创建一个,StringBuffer线程安全,高效),用"+"的方式进行字符串拼接,会产生中间无用的内存块,频繁拼接就会消耗大量内存。

ArrayMap、SparseArray替换HashMap

内存抖动问题

再小的Class至少也要耗费0.5KB的内存

HashMap每一个Entry实体都需要额外占用32B的内存
2、对象复用(为了内存耗用小一点)

复用系统自带的资源

ListView/GridView/RecycalView适配器的ConvertView复用

避免在 onDraw()方法里面执行对象的创建(原因是:onDraw的图像界面,或者view,一有变动,就会重新的调用onDraw()方法,如果这个时候在里面创建对象的话,就会影响绘制时间,如果执行对象创建比较久,那会导致UI卡顿 ,运行就不流畅,而且onDraw()方法是频繁执行的,所以对象的创建也会频繁,效率就会比较低,一般来说把对象创建放在外面)

3、避免内存泄漏

内存泄漏会导致剩余的Heap越来越少,频繁触发GC回收垃圾

Activity是很容易泄漏的

用Application Context而不是Activity Context,Application是全局有效且一直存在着的,Activity是经常进入退出的,很容易造成内存泄漏问题

注意Cursor对象是否及时关闭,BitMap是否资源回收

打开App,阅读手记
3人推荐
发表评论
随时随地看视频慕课网APP