首页 > 其他 > 详细

Activity组件的UI实现

时间:2015-11-08 23:44:12      阅读:342      评论:0      收藏:0      [点我收藏+]

     Activity组件的UI实现需要与WindowManagerService服务和SurfaceFlinger服务进行交互

 

    1. Activity组件在启动完成后,会通过一个类型为Session的Binder对象来请求WindowManagerService为它创建一个类型为WindowState的对象,用来描述它的窗口状态

    2. Android应用程序会通过一个类型为Client的Binder对象来请求SurfaceFlinger服务为它创建一个类型为Layer的对象,用来描述它的窗口数据。

    3. SurfaceFlinger服务为Android应用程序创建一个类型为Layer的对象之后,会返回一个类型为SurfaceLayer的Binder对象给Android应用程序,这样Android应用程序就可以通过这个Binder对象来请求SurfaceFlinger服务来分配图形缓冲区

     综合上述信息,我们就可以得到Activity组件与WindowManagerService服务和SurfaceFlinger服务的交互模型,如下图所示:

技术分享

    事实上,用来关联Activity组件和Layer对象的SurfaceLayer对象并不是由Android应用程序请求SurfaceFlinger服务来创建的,而是由WindowManagerService服务请求SurfaceFlinger服务来创建的。WindowManagerService服务得到这个SurfaceLayer对象之后,再将它的一个代理对象返回给在Android应用程序这一侧的Activity组件。这样,Activity组件和WindowManagerService服务就可以通过同一个SurfaceLayer对象来操作在SurfaceFlinger服务这一侧的Layer对象,而操作Layer对象的目的就是为了修改Activity组件的UI。

 

更详细的请参考老罗的博客: Android应用程序窗口(Activity)实现框架简要介绍和学习计划

 

Activity组件的UI实现

原文:http://www.cnblogs.com/carlo/p/4948613.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!