Android渲染优化手册

2018/5/22


工具

GPU rendering学会看柱状图

过度绘制

Looper、Choreographer(https://blog.csdn.net/qq_36523667/article/details/80034367

 

嵌套

为什么嵌套性能低呢?LayoutInlater是通过xml paser+反射进行的一个创建,消耗挺大的。而且类如RelativeLayout、LinearLayout等经常需要measure两次才能完成,而嵌套、相互嵌套、深层嵌套等的发生会使measure次数呈指数级增长

1层最好。好像有人开发了自定义控件,就是可以直接就是一个View。减少嵌套需要丰富的智慧与经验。

 

过度绘制

也是见仁见智。不过有些真的是很难避免的

 

注重复用

这谈不上渲染优化了,但是对于需求改动有着很积极的响应。一般是通过include+自定义控件进行封装。

TextView,Drawable

写一个TextView Drawable同时存在的控件。这是通过自定义控件减少嵌套的方式。这里需要积累和思路。

RelativeLayout、ConstraintLayout

很容易就可以1层,但是你也必须考虑机型适配友好的百分比布局和LinearLayout布局。减少嵌套和机型适配是我们需要好好平衡的点。

include+merge

消除外层。多用于UI架构,避免单个xml布局中太过复杂。

view stub

绘制3大流程

不可有耗时操作及新建对象

第三方UI控件库

慎用,除了RecyclerView这种。最好还是自己写一个吧。

SurfaceView和TextureView

这种绘制是在子线程的。多用于绘制更优性能的动画。

RenderScript

open gl


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值