Android Activity栈关系解析

2025-03-01  本文已影响0人  猿小蔡

一、核心类职责解析

1. ActivityRecord(活动记录)

2. TaskRecord(任务记录)

3. ActivityStack(活动栈)

4. ActivityDisplay(活动显示器)

5. ActivityStackSupervisor(活动栈监督者)


二、层级关系与协作流程

graph TD
    A[ActivityStackSupervisor] --> B[ActivityDisplay] 
    B --> C[ActivityStack] 
    C --> D[TaskRecord] 
    D --> E[ActivityRecord]

三、对开发者的实践意义

  1. 调试工具

    • 使用 adb shell dumpsys activity activities 查看任务栈信息,例如:

      Display #0 (手机主屏):
        Stack #0: type=standard, bounds=[0,0][1080,1920]
          Task #100: affinity=com.wechat, size=2
            ActivityRecord{MainActivity}
            ActivityRecord{ChatActivity}
      
  2. 启动模式与任务栈

    • singleTask 模式会复用或创建新任务栈,FLAG_ACTIVITY_NEW_TASK 强制启动新任务。
  3. 多窗口适配

    • 分屏模式下需处理 Configuration 变化(如屏幕尺寸),确保界面布局合理。

四、总结

Android 的 Activity 任务栈管理通过 ActivityRecord(砖块)TaskRecord(房间)ActivityStack(楼层)ActivityDisplay(整栋楼)ActivityStackSupervisor(物业总公司) 构建起完整的体系。开发者需理解其协作逻辑,合理使用启动模式与调试工具,以优化多任务体验。

上一篇 下一篇

猜你喜欢

热点阅读