Android那两个你碰不到但是很重要的类之ViewRootImpl |
||||||||||||||||||
+ 目录
前言这两个类就是ActivityThread和ViewRootImpl,之所以说碰不到是因为我们无法通过正常的方式引用这两个类或者其类的对象,调用方法或者直接拿他的属性。但他们其实又无处不在,应用开发中很多时候都和他们息息相关,阅读他们掌握其内部实现对我们理解Android运行机理有醍醐灌顶之疗效,码读百变其义自见,常读常新。本文就尝试从几个我们经常接触的方面先谈谈ViewRootImpl。
1.ViewRootImpl哪来的? 首先是ViewRootImpl,位于 这个要从我们最熟悉的Activity开始,我们知道Activity的设置布局View是通过
?
?
小结
2 ViewRootImpl 一个View链渲染的中转站 View的渲染是自定而上层层向下发起的,大致经历测量布局和绘制,View链的管理者就是
?
3 不能在子线程操作View?ViewRoot的RequestLayout中有这样一段代码:
?
4 View 挂载
?
?
通过addView添加进的View也是会收到父View的mAttachInfo这里不展开了。
5 View.post()的Runnable最终在哪执行了?
?
?
6 为什么View.post 可以获取宽高
7 还有一点值得注意 硬件传感器接收到触摸事件经过层层传递分发到应用窗口的第一站就是ViewRootImpl。为什么这么说?因为我有证据~。这是ViewRoot里的代码
?
总结
以上就是Android那两个你碰不到但是很重要的类之ViewRootImpl的详细内容,更多关于Android ViewRootImpl的资料请关注陆零网络相关文章! |