一、保证flutter的流畅度
1、利用RepaintBoundary,提高build效率,降低Widget tree遍历的出发点,将setState刷新数据尽量下发到底层节点
2、提高paint的效率,为经常发生显示变化的内容提供一个新的隔离layer,新的layer paint不会影响到其他layer
3、减少build中逻辑处理,因为widget在页面刷新的过程中随时会通过build重建,build调用频繁,我们应该只处理跟UI相关的逻辑
4、减少saveLayer(ShaderMask、ColorFilter、Text Overflow)、clipPath的使用,saveLayer会在GPU中分配一块新的绘图缓冲区,切换绘图目标,这个操作是在GPU中非常耗时的,clipPath会影响每个绘图指令,做相交操作,之外的部分剔除掉,所以这也是个耗时操作
5、减少Opacity Widget 使用,尤其是在动画中,因为他会导致widget每一帧都会被重建,可以用 AnimatedOpacity 或 FadeInImage 进行代替
6、针对Sliver滑动的优化,sliver在滑动过程中,添加缓存区
7、带换行符的文本会影响布局效率,单行去掉换行符
二、flutter
来源:
咸鱼复杂业务的flutter性能:https://blog.youkuaiyun.com/weixin_38912070/article/details/105671940
咸鱼如何在flutter上实现动态渲染:https://blog.youkuaiyun.com/yunqiinsight/article/details/101055269
咸鱼做高可用性的动态渲染:https://blog.youkuaiyun.com/Taobaojishu/article/details/104177476
咸鱼跨平台应用实践:http://www.cocoachina.com/articles/24859