返回

Activity 的幕后机制:揭秘启动、布局和绘制过程

Android

导言

Android 开发中,Activity 扮演着至关重要的角色。它们是用户交互的窗口,负责显示界面元素和响应用户输入。然而,在这些直观的界面背后,存在着复杂的机制,使 Activity 能够启动、创建布局并最终呈现给用户。在本文中,我们将深入探讨 Activity 的内部运作,揭开启动过程、布局创建和绘制过程的神秘面纱。

启动过程

当用户启动 Activity 时,Android 系统会执行一系列步骤来创建并显示 Activity 的实例:

  1. 意图过滤 (Intent Filtering): 系统会检查已注册的 Activity 过滤器,找到与启动意图匹配的 Activity。
  2. Activity 实例化: 找到匹配的 Activity 后,系统会创建一个该 Activity 的新实例。
  3. 生命周期回调: 然后,系统会调用 Activity 的生命周期方法 onCreate(),向 Activity 发出创建事件。
  4. Window 对象创建: Activity 实例创建后,系统会为其创建一个 Window 对象,该对象负责管理 Activity 的界面布局。

布局创建

布局是 Activity 界面设计的骨架。当 Activity 被创建时,系统会根据指定的布局 XML 文件创建视图层次结构:

  1. 加载布局 XML: 系统会加载 Activity 声明的布局 XML 文件。
  2. 视图层次结构: 布局 XML 定义了视图层次结构,包括各个控件和它们的属性。
  3. 视图绑定: 系统会将 XML 中定义的视图绑定到相应的 Java 对象上。
  4. 生命周期回调: 布局创建完成后,系统会调用 Activity 的生命周期方法 onCreateView(),向 Activity 发出布局创建事件。

绘制过程

绘制过程是将视图层次结构呈现到屏幕上的最后一步:

  1. 测量和布局: 系统会测量和布局视图,确定它们在屏幕上的位置和大小。
  2. 绘制: 系统会绘制视图层次结构,将每个视图渲染到屏幕上。
  3. 生命周期回调: 绘制完成后,系统会调用 Activity 的生命周期方法 onDraw(),向 Activity 发出绘制事件。

Window 对象

Window 对象是 Activity 管理其界面的核心组件。它负责:

  • 创建和管理视图层次结构
  • 绘制视图到屏幕上
  • 处理用户交互(如点击、触摸)
  • 提供菜单和导航栏等窗口功能

生命周期

Activity 的生命周期是一系列方法,在 Activity 的整个生命周期中被调用。这些方法提供了通知 Activity 其状态变化的机会,如创建、销毁、暂停和恢复。