• Activity窗口结构


     每一个Activity组件都有一个关联的ContextImpl对象,同时,它还关联有一个Window对象,用来描述一个具体的应用程序窗口。由此又可知,Activity只不过是一个高度抽象的UI组件,它的具体UI实现其实是由其它的一系列对象来实现的

    一Activity相关概念

    Activity:Activity包含一个Window,该Window在Activity的attach方法中通过调用

    PolicyManager.makeNewWindo创建;

    View:最基本的UI组件,表示屏幕上的一个矩形区域;

    DecorView:是Window中View的RootView,设置窗口属性;

    Window:表示顶层窗口,管理界面的显示和事件的响应;每个Activity 均会创建一个

             PhoneWindow对象,是Activity和整个View系统交互的接口

    WindowManager:一个interface,继承自ViewManager。所在应用进程的窗口管理器;

    有一个implementation WindowManagerImpl;

    主要用来管理窗口的一些状态、属性、view增加、删除、更新、窗口顺序、消息收集和处理等。

    ViewRoot通过IWindowSession接口与全局窗口管理器进行交互:界面控制和消息响应;

    ActivityThread应用程序的主线程,其中会创建关联当前Activity与Window;

    创建WIndowManager实现类实例,把当前DecoView加入到WindowManager;

        

    二 实现流程框架图

             Activity上Window的创建关联流程如下:

      

        

    相关类结构:

      

          

    层级关系:

      (此图网上盗用...)

        

      1. 一个Activity组件所关联的应用程序窗口对象的类型为PhoneWindow。

      2. 这个类型为PhoneWindow的应用程序窗口是通过一个类型为LocalWindowManager的本地窗口管理器来维护的。

      3. 这个类型为LocalWindowManager的本地窗口管理器又是通过一个类型为WindowManagerImpl的窗口管理器来维护应用程序窗口的。

      4. 这个类型为PhoneWindow的应用程序窗口内部有一个类型为DecorView的视图对象,这个视图对象才是真正用来描述一个Activity组件的UI的。

  • 相关阅读:
    mysql连接数过多 解决方案
    单列模式下的数据库连接与Servlet之间页面访问用户登录的小例子
    Spring MVC理解和主要使用的注解详解
    Spring JDBC 框架中, 绑定 SQL 参数的另一种选择:具名参数(named parameter)
    xlwings
    openpyxl
    【python】Excel两表中某个信息对比
    pycharm中配置python版本问题
    python指令提示不是内部或外部命令(环境变量配置)
    python管理电脑文件及文件夹
  • 原文地址:https://www.cnblogs.com/jasonxcj/p/4750275.html
Copyright © 2020-2023  润新知