博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Activity窗口结构
阅读量:6827 次
发布时间:2019-06-26

本文共 1078 字,大约阅读时间需要 3 分钟。

 每一个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的。

转载于:https://www.cnblogs.com/jasonxcj/p/4750275.html

你可能感兴趣的文章
使用Vue快速开发单页应用-登录页面
查看>>
单元格动态合并
查看>>
运维安全系列基础服务之 FTP 服务(系列一)
查看>>
[LeetCode] House Robber I II
查看>>
Dagger依赖注入入门
查看>>
很好的东西
查看>>
没有 Python,微软宣布 Excel 新增 JavaScript 支持
查看>>
用70亿美元收购Mellanox,英伟达阔绰出手“打败”Intel ...
查看>>
北汽上汽广汽为有感科技站台:主机厂眼中的无线充电技术应具备什么? ...
查看>>
设计模式——外观模式
查看>>
struts2开发时通过interceptor拦截器实现输入数据过滤前后空格的功能 ...
查看>>
学C++走游戏方向,是不是非常艰难自找苦吃?
查看>>
名称,决定了平台的发展愿景——互联网平台建设系列 ...
查看>>
【图文】如何用云服务器搭建一个https的网站?
查看>>
对话赛灵思Gilles Garcia:深度糅合技术属性与客户需求,做极致的Xilinx式服务 ...
查看>>
我们的手机用上北斗导航了吗?
查看>>
MyBatis全局配置文件mybatis-config.xml
查看>>
rac库数据文件创建在os本地的解决办法
查看>>
SSH集成开发积分商城 之 11.3 实现积分商城层
查看>>
阿里巴巴AI夺肝结节诊断两项世界冠军,至今无人超越
查看>>