iOS 上视图或动画渲染的各阶段

2017-01-04  本文已影响68人  神采飞扬_2015

在 APP 内部的有4个阶段

说明:在 iOS上,动画和视图的渲染其实是在另外一个进程做的(下面我们叫这个进程 render server),在 iOS 5 以前这个进程叫 SpringBoard,在 iOS 6 之后叫 BackBoard。

在 APP 外部的2个阶段

当这些数据到达 render server 后,会被反序列化成 render tree。然后 render server 会做下面的两件事:

掉帧原因

如果做动画的话,最后的两个步骤会一直重复直到动画结束。 iOS 设备的屏幕刷新频率是 60HZ,如果上面的这些步骤在一个刷新周期之内无法做完(1/60s),就会造成掉帧。有哪些操作可能会过度消耗 CPU 或者 GPU,从而造成掉帧呢?

渲染性能优化的注意点

我们要做的:设置 view 的 backgroundColor 为一个固定的、不透明的 color。如果一个 view 是不透明的,设置 opaque 属性为 YES(直接告诉程序这个是不透明的,而不是让程序去计算)。这样会减少 blending 和 overdraw。如果使用 image 的话,尽量避免设置 image 的 alpha 为透明的,如果一些效果需要几个图片融合而成,就让设计用一张图画好,不要让程序在运行的时候去动态的融合。

参考:http://bugly.qq.com/bbs/forum.php?mod=viewthread&tid=297&fromuid=79

上一篇下一篇

猜你喜欢

热点阅读