关闭

Android GUI系统-View框架(一)

标签: View框架
62人阅读 评论(0) 收藏 举报
分类:

View框架

相关元素的关系:

1ViewViewRootViewRoot可以理解为View树的管理者,是ViewRootImpl类型的对象,ActivityViewRoot是一对一的关系,他有一个成员变量mView,是View树的根,也就是xml布局的顶层元素,ViewRoot的核心任务是跟WMS通信。


2ActivityWindowActivity有一个成员变量mWindow就是Window类型的对象,Window基类,手机系统中默认是指phoneWindow,这个phoneWindow对象是什么时候生成的?在启动Activity的过程中,最后一步会调用performLaunchActivity,在这个函数里通过activity.attach的调用生成了mWindow= new PhoneWindow(this, window)


3WindowWindowManagerImplWindow是面向Activity的,是UI界面的外框,框里面的具体内容由Window的具体类(如phoneWindow)规划。

Window需要跟WMS通信,一个应用程序里面可能有多个Window,这些window需要统一的管理,所以有了WindowManager,也就是Window的成员变量mWindowManagerWindowManager是一个接口,具体的实现类是WindowManagerImplWindowManagerImpl可以认为是整个应用程序中所有窗口的管理者。


4ViewRootWindowManagerImplWindowManagerImpl中有一个成员变量mGlobal,是WindowManagerGlobal类型的变量,它通过三个列表mViewsmRootsmParams来管理View树的根节点,ViewRootWindow属性。


5ViewRootWindowManagerServiceViewRoot中有一个mWindowSession成员变量,是用于跟WMS通信的,因为它是匿名的Binderserver,所以要通过WMS的接口openSession获得,同时ViewRoot利用mWindowSessionaddToDisplay提供一个IWindow类型的Binder对象给WMS,让WMS可以通过这个Binder对象跟ViewRoot通信。


6)

跟窗口相关的两个概念,phoneWindow继承自Window类,是应用进程端对窗口的描述,表达了对窗口的一种约束;WMS中的window是一个抽象的概念,用WindowState来描述其状态,WindowState可以认为是WMS中对窗口的描述。


借用一张网上的图:



0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

销售管理系统 JavaGUI Swing框架实现版

销售管理系统 JavaGUI Swing框架实现版
  • PingXiaoGai
  • PingXiaoGai
  • 2017-01-06 11:03
  • 2346

Java图形开发--GUI

Java图形开发--GUI 1、图形用户界面(gui)介绍 图形用户界面(Graphics User Interface,GUI)是用户与程序交互的窗口,比命令行的界面更加直观并且更好操作。 aw...
  • q547550831
  • q547550831
  • 2015-11-02 19:38
  • 16669

一个基于Matlab的简单Gui设计

前几日浩子说要编一个基于Matlab的用户图像界面,他用GUIDE搭了一个大概的框架,大概要实现数据读入、做图分析、图像清除、关闭界面的功能,我用函数形式给改编了一个,虽然问题比较简单,但是也可以视为...
  • z215367701
  • z215367701
  • 2016-01-12 18:34
  • 2398

图解Android - Android GUI 系统 (2) - 窗口管理 (View, Canvas, Window Manager)

原文链接: http://www.cnblogs.com/samchen2009/p/3367496.html Android 的窗口管理系统 (View, Canvas, WindowMa...
  • yypony
  • yypony
  • 2014-02-19 15:41
  • 1768

Android4.4 GUI系统框架之SurfaceFlinger

一. Android GUI框架: SurfaceFlinger:每当用户程序刷新UI的时候,会中介BufferQueue申请一个buffer(dequeueBuffer),然后把UI的...
  • mydots
  • mydots
  • 2015-11-05 11:51
  • 636

基于Android系统应用层与框架层剖析View点击事件

基于Android操作系统的框架层和应用层,介绍了View的绘制、触摸事件的传递流程,分析了View与用户交互时被回调的相关框架层代码和应用层代码,研究了Android应用中事件处理的相关重要机制。通...
  • u011028672
  • u011028672
  • 2015-01-01 13:50
  • 1279

ButterKnife是一个专注于Android系统的View注入框架

俗话说:“不会偷懒的程序员不是好的程序员!”。作为一名Android开发,是不是经常厌烦了大量的findViewById以及setOnClickListener代码,而ButterKnife是一个专注...
  • dalongjun
  • dalongjun
  • 2015-11-20 12:42
  • 229

Android GUI之View绘制流程

在上篇文章中,我们通过跟踪源码,我们了解了Activity、Window、DecorView以及View之间的关系(查看文章:http://blog.csdn.net/jerehedu/article...
  • JerehEdu
  • JerehEdu
  • 2015-07-27 10:55
  • 745

android 游戏开发view 框架

  • 2015-03-20 09:35
  • 1.40MB
  • 下载

Android游戏开发之构建游戏框架view与surfacevView的区别

  • 2011-07-25 15:36
  • 310KB
  • 下载
    个人资料
    • 访问:35519次
    • 积分:1686
    • 等级:
    • 排名:千里之外
    • 原创:130篇
    • 转载:38篇
    • 译文:0篇
    • 评论:9条
    最新评论