Android应用优化指南

对我们技术从业者而言,很多时候时候不是我们不知道怎么做,而是不知道做什么?今天系统的总结自己关于如何对Android应用进行优化的一些经验,共计八个维度.

这里写图片描述


1.布局优化

为什么?

Android系统每个16ms发出VSYNC信号,触发对UI的渲染,要想达到界面流畅,必须实现60fps,也就意味着大多数的操作必须在16ms完成.

除了上面界面过于复杂导致渲染不能及时完成之外,还存在过度绘制问题.所谓过度绘制就是某个像素在同一帧的时间内被绘制多次.在多层次的UI界面中,如果不可见的UI也在进行绘制,那么这些重合区域的像素就会被绘制多次,从而浪费大量的CPU和GPU资源.过度绘制也发生在背景重叠的情况下,比如Layout中有自己的背景,同时子View中又有自己的背景.

如何检测?

  • 使用HierarchyViewer来查找Activity中的布局是否过于复杂
  • 在开发者选项中打开Show GPU Overdraw选项进行观察是否存在过度绘制
  • 在开发者选项中选择Profile GPU Rendering,选中On screen as bar
  • 使用TraceView来观察CPU执行情况

如何优化?

  • 减少布局的层级,合理的使用include,merge,ViewStub
  • 自定义组件的onDraw()中避免大量创建临时对象,比如String,以免频繁触发GC
  • 自定义组件的onDraw()中,考虑使用canvas.clipRect()绘制需要被绘制的区域
  • 对像ListView这样的组件容器,考虑使用convertView,使用ViewHolder,
  • 考虑使用性能更高的组件,比如推荐使用RecycleView来代替ListView,使用staticlayout来实现自动换行

2.内存优化

为什么?

资源总是有限的,内存同样也是一种资源.在Android当中,过度的/不恰当占用内存资源,会导致应用频繁被杀死,最终也会影响用户

  • 20
    点赞
  • 73
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值