Skip to content

内存、生命周期、系统约束

模块目标

理解 JVM / Dart / App 运行时的内存结构、对象生命周期、页面生命周期,以及系统对前后台行为的约束。

本模块要回答的问题

  • 栈、堆、类元数据区到底是什么?
  • GC 是怎么回收对象的?
  • Dart isolate 为什么天然避免共享内存问题?
  • Android 页面退后台后到底会发生什么?
  • Flutter Widget / Element / RenderObject 分别是什么?
  • iOS 为什么很多后台行为“看似能做但其实有限制”?

子主题清单

01. 内存与对象模型

  • [x] JVM / Dart 内存模型
  • [x] JVM 运行时内存区域(已并入主文档)
  • [x] 栈 / 堆 / 类元数据区(已并入主文档)
  • [x] GC 基础(已并入主文档)
  • [x] 对象生命周期(已并入主文档)
  • [x] Dart isolate 独立堆(已并入主文档)
  • [x] 内存泄漏常见来源(已并入主文档)

02. Android 生命周期

  • [ ] Android Activity 生命周期
  • [ ] Android Fragment 生命周期
  • [ ] ViewModel / SavedStateHandle
  • [ ] 进程被杀后的恢复
  • [ ] 前后台切换
  • [ ] 配置变更
  • [ ] 冷启动 / 热启动 / 温启动

03. Flutter 生命周期

  • [ ] Flutter Widget / Element / RenderObject
  • [ ] initState / build / dispose
  • [ ] AppLifecycleState
  • [ ] 页面重建与状态保存
  • [ ] Flutter 页面与原生宿主生命周期映射

04. iOS 后台约束

  • [x] iOS 生命周期与后台限制
  • [x] iOS app 前后台切换(已并入主文档)
  • [x] iOS 后台模式限制(已并入主文档)
  • [x] 音频/定位/下载的特殊权限(已并入主文档)
  • [x] BGTaskScheduler 现实边界(已并入主文档)

推荐复习顺序

  1. JVM / Dart 内存模型
  2. Android 生命周期
  3. Flutter 生命周期
  4. iOS 生命周期与后台限制
  5. 最后补跨端映射表

对应 labs 入口

建议后续优先补:

  • labs/android/memory-lifecycle/
  • labs/flutter/memory-lifecycle/
  • labs/shared/memory-lifecycle/

备注

这个模块特别适合结合真实线上问题和崩溃/恢复场景一起复习。