目录

  • 简介
  • 目录
  • 1、VeiwRoot
    • 1.1、简介
    • 1.2、特别注意
  • 2、DecorView
    • 2.1、定义
    • 2.2、作用
    • 2.3、特别说明
  • 3、Window
  • 4、Activity
  • 5、之间关系
    • 5.1、总结
    • 5.2、之间的关系

简介

  • DecorView为整个Window界面的最顶层View。
  • DecorView只有一个子元素为LinearLayout。代表整个Window界面,包含通知栏,标题栏,内容显示栏三块区域。
  • LinearLayout里有两个FrameLayout子元素。
    • (20)为标题栏显示界面。只有一个TextView显示应用
    • (21)为内容栏显示界面。就是setContentView()方法载入的布局界面,加入其中。

目录

1、VeiwRoot

1.1、简介

1.2、特别注意

// 在主线程中,Activity对象被创建后:
// 1. 自动将DecorView添加到Window中 & 创建ViewRootImpll对象
root = new ViewRootImpl(view.getContent(),display);// 3. 将ViewRootImpll对象与DecorView建立关联
root.setView(view,wparams,panelParentView)

2、DecorView

2.1、定义

顶层View,即 Android 视图树的根节点;同时也是 FrameLayout 的子类。

2.2、作用

显示 & 加载布局。View层的事件都先经过DecorView,再传递到View。

2.3、特别说明

内含1个竖直方向的LinearLayout,分为2部分:

  • 上 = 标题栏(titlebar)
  • 下 = 内容栏(content)

Activity中通过 setContentView()所设置的布局文件其实是被加到内容栏之中的,成为其唯一子View = idcontentFrameLayout中。

注:获取setContentView()设置的View代码如下:

// 在代码中可通过content得到对应加载的布局// 1. 得到content
ViewGroup content = (ViewGroup)findViewById(android.R.id.content);
// 2. 得到设置的View
ViewGroup rootView = (ViewGroup) content.getChildAt(0);

3、Window

4、Activity

5、之间关系

ViewRoot、DecorView、Window和Activity的关系非常重要。

5.1、总结

5.2、之间的关系

Android ViewRoot、DecorViewWindow浅析相关推荐

  1. 键盘android,Android键盘系统浅析(上)

    Android键盘系统浅析(下) 通过往着几个文件中插桩,从模拟器的启动日志,我们可以更直观的开到整个Android键盘系统的建立: -------.. I/SystemServer(   57): ...

  2. Android应用框架浅析

    http://blog.csdn.net/yanbober/article/category/3206943 Android应用层View绘制流程与源码分析   http://blog.csdn.ne ...

  3. android 动画 alpha,浅析Android 动画之AlphaAnimation应用操作

    作为程序员不管是为了什么,或多或少都会模仿其他人的一些手法来达到效果,程序员都必须要做出各种绚丽的动画画面来吸引大家,下面是爱站技术频道小编浅析 动画之AlphaAnimation应用操作,一起来了解 ...

  4. Android Clean 架构浅析

    该原创文章首发于微信公众号"字节流动" Android 常用的架构主要有 MVC,MVP,MVVM 以及 Clean .以上架构设计模式没有绝对的优劣之分,关键要看具体的应用场景. ...

  5. Android Binder机制浅析及AIDL的使用

    参考 轻松理解 Android Binder,只需要读这一篇 图文详解 Android Binder跨进程通信的原理 Android中的Parcel是什么 Android Binder IPC通信机制 ...

  6. Android L 漫游浅析

    这篇文章主要是分析在Android L 源代码中对手机漫游的处理.当然我这里所说的漫游指的是国际漫游.通常我们判断手机是否在国际漫游,第一个想法就是比较网络上获取的MCC+MNC是否与手机中的IMSI ...

  7. android camera工程师,浅析Android Camera架构

    本博文是基于Android 4.4讲解 1.application 层: 当我们Android工程师想打开camera时通常直接调用Camera.java中的  Camer.open(cameraId ...

  8. Android.bp 语法浅析-Android10.0编译系统(八)

    摘要:Blueprint解析Android.bp到ninja的代码流程时如何走的? 阅读本文大约需要花费18分钟. 文章首发微信公众号:IngresGe 专注于Android系统级源码分析,Andro ...

  9. Android 蓝牙开发浅析

    Android Bluetooth API 翻译http://wenku.baidu.com/view/518414b069dc5022aaea007b.html?from=rec&pos=2 ...

最新文章

  1. Cytoscape: MCODE增强包的网络模块化分析
  2. HDU 3625 Examining the Rooms【第一类斯特灵数】
  3. 他让张一鸣登门请教,培养出戴文渊李沐陈天奇,创建了传说中的上海交大ACM班...
  4. 在Mac OS环境下安装MySQL服务
  5. 给 Javascript 加上面向对象的属性:Class.js
  6. VTK:模型之Finance
  7. H5网页App和纯原生的App差距在哪?
  8. oracle查询案例,2道经典的oracle查询案例
  9. 题目管理后台系统_中后台产品最爱的后台:CMS(社区)管理系统搭建
  10. 计算机ppt板块正文文本动画在哪,《计算机应用基础》统考辅导第章PowerPoint电子演示文稿.ppt...
  11. Windows配置MinGW环境变量
  12. python模块之feedparser学习使用
  13. 德标螺纹规格对照表_德标 国标,国际标准中英文对照表
  14. 依云工资查询系统升级至6.4
  15. win7系统配置时间服务器,与Internet时间服务器同步 设Win7精确时间
  16. PHP在线手册 中文版
  17. Linux优化学习之Load Average (平均负载)
  18. Bluetooth Battery Monitor(蓝牙电量监控软件)
  19. 屏的接口类型种类以及接口定义分析
  20. C# Windows Service与Timer(计时器)

热门文章

  1. 【转】ASP.NET Web API 使用Swagger生成在线帮助测试文档,支持多个GET
  2. 第三节:框架前期准备篇之利用Newtonsoft.Json改造MVC默认的JsonResult
  3. Qt实现多屏幕多分辨率自适应
  4. REVERSE-PRACTICE-BUUCTF-19
  5. 查看linux硬核上的线程,给大家分享一点基础硬核知识哦 Linux的基础指令操作Lin...
  6. C++自定义迭代器模板,实现ArrayList基本操作,自定义迭代器遍历
  7. Processing 闪烁的圆 动画效果
  8. 【CodeForces - 260A】Adding Digits (思维构造)
  9. 【POJ - 3320 】Jessica's Reading Problem (尺取,哈希)
  10. 【HDU - 2571】 命运(记忆化搜索)