先找到一ActivityThread类 的handleMessage。
![](https://img.haomeiwen.com/i6285430/1258533620763174.png)
这个方法
![](https://img.haomeiwen.com/i6285430/5245e52845e5800e.png)
进入launch_activity
![](https://img.haomeiwen.com/i6285430/96584acab4f326c0.png)
执行这个方法
![](https://img.haomeiwen.com/i6285430/14609feb6aa858f6.png)
找到这个地方。wm是ViewManager接口 获取的是WindowManager也是接口
![](https://img.haomeiwen.com/i6285430/e5e5e68b4e2897ee.png)
WindowManagerImpl才是实现类,找到addview方法
![](https://img.haomeiwen.com/i6285430/40a04d3fc94c321d.png)
找到mglobal的addview方法
![](https://img.haomeiwen.com/i6285430/5e1bef3d41c081e5.png)
找到此处往下走,看下一个图
![](https://img.haomeiwen.com/i6285430/fa51341bc205b41f.png)
这个时候开始搞事情。将view喝wparams,pannelparentview关联
![](https://img.haomeiwen.com/i6285430/c8f6d3232f71d55c.png)
这里会执行一下requestLayout
![](https://img.haomeiwen.com/i6285430/263472071634d71a.png)
然后checkThread检查下线程scheduleTraversals();
![](https://img.haomeiwen.com/i6285430/c5843f4b075d4860.png)
接着进入这个方法
![](https://img.haomeiwen.com/i6285430/d061e73ed4dbde4c.png)
执行mTraversalRunnable的线程方法
![](https://img.haomeiwen.com/i6285430/0fbc38e43672d9d9.png)
接着
![](https://img.haomeiwen.com/i6285430/cfc1f259d8ebc3cf.png)
接着
![](https://img.haomeiwen.com/i6285430/9f23da3bd9dae281.png)
接着开始测量摆放绘制
![](https://img.haomeiwen.com/i6285430/defb3a7fd82ee1cd.png)
测量
![](https://img.haomeiwen.com/i6285430/c65e1dd7ed59bcde.png)
摆放
![](https://img.haomeiwen.com/i6285430/2cb7e0718bc62622.png)
绘制
网友评论