第15章.android性能优化方法

  1. 假如可以用Linearlayout,就用Linearlayout,因为Relativelayout比较复杂。
  2. 采用include,merge,viewstub标签重用布局。
  3. include 的id以include指定id为准,假如根元素也有id
  4. include 假如指定android:layout_*属性,那么必须重写include的宽高。
  5. merge去掉多余的嵌套
  6. viewstub不参与绘制过程,按需加载。infalteId是加载后的根元素id。目前不支持merge标签。


    绘制优化
  7. onDraw避免做大量操作,不要创建新的局部对象。

  8. onDraw不要做耗时操作,保证每帧绘制不超过16ms

内存泄露优化
  1. 静态变量导致的内存泄露。不要持有activity的引用无法释放。
  2. 单例模式导致的内存泄露。注册记得要解绑。
  3. 属性动画导致内存泄露。在onDestory调用animator。cancel()停止动画。


    响应速度优化和ANR日志分析
  4. activity5秒无法响应和BroadReceiver10秒无法响应就会ANR.

  5. 发生ANR会/data/anr创建文件traces.txt
  6. Listview优化 1)采用viewholder避免在getview做耗时操作 2)根据滑动状态来执行任务,快速滑动时不适宜开启大量异步任务。3)开启硬件加速来让listview滑动更加流畅。
  7. bitmap优化,采用bitmapFactory.options根据图片采样,使用inSamleSize参数。
  8. 线程优化,使用线程池。
  9. 避免创建过多的对象;不要过多使用枚举,枚举占用内存空间大;常量使用static final修饰;使用android特有的数据结构例如SparseArray和pair
  10. 适当使用弱引用和软引用
  11. 采用内存缓存和磁盘缓存
  12. 尽量采用静态内部类,避免内部类的内存泄露。
  13. 善用MAT分析内存泄露。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值