Android4.0.1 Activity的DecorView与SurfaceFlinger的Surface之间关系的建立过程分析

通过Android4.0.1 Activity的Window与DecorView关系建立过程分析
我们知道DecorView与ViewRootImpl之间是一一对应的关系。ViewRootImpl的成员变量mView保存DecorView的实例。
DecorView是整个Activity的View Tree的根视图,整个Activity的显示就是从DecorView开始将整颗ViewTree中的可视部分绘制到SurfaceFlinger提供的Surface上。
ViewRootImpl中包含一个Surface类型的成员变量mSurface。
在ViewRootImpl的draw()函数中可以看到,Activity的view tree绘制从DecorView开始触发,绘制在了ViewRootImpl的mSurface lock得到的一块Cavas上。
所以Activity的DecorView是与ViewRootImpl的mSurface直接关联的。
所以本文的重点就是分析ViewRootImpl的mSurface成员变量是怎样与SurfaceFlinger的Surface建立关联的。
具体的分析过程可分为两步。
第一步,我们先弄清楚ViewRootImpl中的IWindowSession,IWindow类型的成员变量和WindowManagerService中维护的WindowState类型的成员变量之间的关系。
这里先给出结论:
ViewRootImpl与WindowManagerService之间要进行双向通信。
ViewRootImpl通过IWindowSession与WindowManagerService通信。
WindowManagerService通过IWindow与ViewRootImpl通信。
IWindowSession的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值