Android的控件架构
       Android中控件大致分为ViewGroup控件和View控件。在Activity中使用的findViewbyId()方法,就是在控件树中以深度优先遍历查找对应元素。
(四)View的控件架构
       (四)View的控件架构                                                    android UI架构图
每个Activvity都包含一个Window对象,该对象通常由PhoneWindow实现,该Window在Activity的attach方法中通过调用PolicyManager.makeNewWindo创建; PhoneWindow将一个DecorView设置为整个应用窗口的根View。DecorView作为窗口界面的顶层视图,封装了一些窗口操作的通用方法。DecorView将要显示的具体内容呈现在了PhoneWindow,这里面的所有View的监听事件都通过WSM(WindowManagerService)来进行接受,通过Activity对象来回调相应的Listener。显示上,DecorView装载了一个竖的LinearLayout,将屏幕分为两部分TitleView和ContentView。ContentView是一个ID为content的FrameLayout,在Activity中调用的setContentView就是给ContentView设置内容的。注意:当程序在onCreate()方法中setContentView()方法后,AMS(ActivityManagerService)会回调onResume()方法,此时系统会将整个DecorView添加到PhoneWindow中,以完成界面绘制。

ViewRoot是连接DecorView和WMS的纽带,对应于ViewRootImpl类,View的三大流程均是通过ViewRoot完成。





















相关文章:

  • 2022-01-16
  • 2021-05-14
  • 2021-12-26
  • 2022-02-09
  • 2021-09-04
  • 2022-02-01
猜你喜欢
  • 2021-05-25
  • 2021-11-17
  • 2022-12-23
  • 2022-12-23
  • 2021-12-01
  • 2021-11-23
相关资源
相似解决方案