返回

Android Activity 从创建到 View 显示的幕后之旅

Android

当我们点击 Android 设备上的应用程序图标时,一个看似简单的动作背后却隐藏着复杂的过程。从 Activity 的创建到 View 的显示,一系列事件在幕后悄然发生,协调着应用程序的启动和运行。

Activity 的生命周期

Activity 是 Android 应用程序的基本构建块,代表着屏幕上显示的一个特定界面。每个 Activity 都遵循一个定义的生命周期,由一系列回调方法组成:

  • onCreate(): 当 Activity 首次创建时调用,用于初始化视图和组件。
  • onStart(): 当 Activity 变为可见时调用,用于恢复 Activity 的状态。
  • onResume(): 当 Activity 获得焦点并准备与用户交互时调用,通常用于执行需要用户交互的任务。
  • onPause(): 当 Activity 失去焦点时调用,用于暂停 Activity 的运行并保存其状态。
  • onStop(): 当 Activity 不再可见时调用,用于进一步释放资源和停止 Activity。
  • onDestroy(): 当 Activity 被销毁时调用,用于释放所有资源和清除 Activity 的所有痕迹。

Window 的角色

Window 是 Activity 的一个组成部分,负责管理 Activity 的可见区域。每个 Activity 都有一个关联的 Window,它定义了 Activity 在屏幕上的外观和行为。

Window 提供了以下功能:

  • 标题栏
  • 菜单
  • 内容视图
  • 状态栏

View 的层次结构

View 是 Android 应用程序中用户界面元素的基类。每个 Activity 都包含一个视图层次结构,其中包含一系列嵌套的视图对象,从简单的按钮到复杂的布局。

视图层次结构的根视图称为 DecorView。DecorView 充当 Activity 中所有其他视图的容器,并负责管理焦点和触摸事件。

从 Activity 创建到 View 显示

当我们点击应用程序图标时,以下事件顺序发生:

  1. 系统创建 Activity: Android 系统创建新的 Activity 实例,并调用其 onCreate() 方法。
  2. Activity 设置内容视图: Activity 在 onCreate() 方法中设置其内容视图,这是一个包含应用程序主要用户界面的 View。
  3. 创建 Window: 系统为 Activity 创建一个 Window,并将其关联到 Activity。
  4. 设置 DecorView: Window 将 DecorView 作为其内容视图,并将其添加到窗口。
  5. 添加其他视图: Activity 在 onCreate() 方法中将其他视图添加到 DecorView。
  6. 测量和布局: 系统测量和布局视图层次结构,确定每个视图的位置和大小。
  7. 绘制: 系统绘制视图层次结构,将内容显示在屏幕上。
  8. 调用 onResume(): 系统调用 Activity 的 onResume() 方法,表明 Activity 已准备好与用户交互。

实例探究:技术指南

步骤 1:创建 Activity

首先,创建一个名为 MainActivity 的新 Activity:

public class MainActivity extends AppCompatActivity {
    ...
}

步骤 2:设置布局

在 onCreate() 方法中,设置 Activity 的布局:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ...
}

步骤 3:添加视图

在布局文件中 (activity_main.xml),添加一个简单的 TextView:

<TextView
    android:id="@+id/hello_text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello, World!" />

步骤 4:测量和布局

系统将自动测量和布局视图层次结构。

步骤 5:绘制

系统将绘制视图层次结构,在屏幕上显示 "Hello, World!"。

结论

Android Activity 从创建到 View 显示的过程是一个复杂的旅程,涉及 Activity、Window 和 View 之间的协作。理解这一过程对于编写健壮且响应迅速的 Android 应用程序至关重要。通过分解每个步骤并提供技术指南,本文旨在揭示这一机制背后的奥秘,赋予开发人员掌控应用程序生命周期的力量。