8.3.1 和Surface有关的流程总结
最后更新于:2022-04-02 05:52:13
这里,先总结一下前面讲解中和Surface有关的流程:
- 在ViewRoot构造时,会创建一个Surface,它使用无参构造函数,代码如下所示:
~~~
private final Surface mSurface = new Surface();
~~~
- ViewRoot通过IWindowSession和WMS交互,而WMS中会调用的一个attach函数,会构造一个SurfaceSession,代码如下所示:
~~~
void windowAddedLocked() {
if(mSurfaceSession == null) {
mSurfaceSession = new SurfaceSession();
mNumWindow++;
}
}
~~~
- ViewRoot在performTransval的处理过程中会调用IWindowSession的relayout函数。这个函数还没有分析。
- ViewRoot调用Surface的lockCanvas,得到一块画布。
- ViewRoot调用Surface的unlockCanvasAndPost释放这块画布。
这里从relayout函数开始分析,来看。
';