竟如此简单,一文看懂DecorView的一生
💡
原文中文,约8800字,阅读约需21分钟。
📝
内容提要
DecorView是Android应用程序中的根视图,负责承载应用的视图结构。它与Window、Activity和ViewRootImpl有联系。通过setContentView方法将布局加载到DecorView中。ViewRootImpl负责初始化视图层次结构、处理布局和事件分发。DecorView的创建需要经过Activity的启动和PhoneWindow的初始化。最后,DecorView被添加到WindowManager中,由ViewRootImpl进行后续制作。
🎯
关键要点
- DecorView是Android应用程序中的根视图,负责承载应用的视图结构。
- DecorView通过setContentView方法加载布局,将布局作为子视图增加到DecorView中。
- Window是Android中的抽象概念,代表屏幕上的一块区域,承载DecorView。
- Activity是Android应用中的基本组件,负责创建用户界面,并与Window关联。
- ViewRootImpl是Android UI系统的内部机制,连接Window和DecorView,处理布局和事件分发。
- DecorView的创建在Activity的onCreate方法中开始,通过调用setContentView方法触发。
- PhoneWindow是Window的子类,负责管理应用程序窗口的外观和行为。
- setContentView方法内部会获取Window,解析布局并设置内容视图。
- installDecor方法负责初始化DecorView,并将解析的视图树增加到DecorView中。
- DecorView在Activity的onResume方法之后被添加到WindowManager中,显示在屏幕上。
- ViewRootImpl负责将DecorView附加到窗口,并处理后续的布局和事件分发。
- 整个流程主要分为四步:创建PhoneWindow、调用setContentView创建DecorView、将DecorView添加到WindowManager、通过ViewRootImpl进行后续制作。
🏷️
标签
➡️