Relearn-Android
  • 说在前头
  • 更新动态
    • 《重学安卓》两周年,回顾与展望
  • 目录
    • 视图控制器
    • 标准化开发模式
    • 视图系统
    • 数据交互
    • 实战经验
    • 底层逻辑
  • 免费试读
    • 过目难忘 Android GUI 关系梳理
    • 一通百通 “声明式 UI” 扫盲干货
  • 优惠政策 & 版权须知
由 GitBook 提供支持
在本页
  • 《重学安卓:Activity 的快乐你不懂!》
  • 《重学安卓:Activity 生命周期的 3 个辟谣》
  • 《重学安卓:绝不丢失状态的 Activity 重建机制》
  • 《重学安卓:你丢了 offer,只因拎不清 Activity 任务和返回栈》
  • 《重学安卓:Intent 好比你的择偶标准》
  • 《重学安卓:我的碎片很听话,你的 Fragment 有自己的想法》

这有帮助吗?

  1. 目录

视图控制器

View-Controller 之 生命周期、重建机制、状态管理、页面通信、路由导航

《重学安卓:Activity 的快乐你不懂!》

  • 前言

  • 我是一块板砖

  • 我是 Surface Flinger

  • 我是 Window

  • 我是一个会套娃的 View

  • …… 所以,Window 成了摸鱼般的存在吗?

  • 于是我改名叫 Activity

  • 综上

  • Note 2019.11.9 加餐:

    • 从设计模式角度 解析 Activity 和 Window 的关系

  • Note 2020.1.29 加餐:

    • 从视图系统架构设计的角度 解析 PhoneWindow 和 ViewRootImpl 二者的本质和区别

《重学安卓:Activity 生命周期的 3 个辟谣》

  • 前言

  • 不得不先讲的进程模式

  • 前景模式、可见模式,二者的区别?

  • Activity 的正常生命周期

  • 生命周期节点与进程模式的对应关系?

  • 为何存在生命周期的设计?

  • 节点的特点、区别,及注意事项?

  • Note 2020.9.26 加餐:

    • 分享一个用于代替 “在 onPause 和 onStop 中做耗时操作” 的好招

  • 辟谣时间到 ~

  • 综上

  • Note 2020.11.4 加餐:

    • 面试时切忌使用 “Activity 被系统回收” 等说辞

  • Note 2021.07.13 加餐:

    • 可见模式,不如我们称其为 “失焦模式”

  • Note 2022.02.10 加餐:

    • 前台 App 的 Activity 也会被 “回收” ?唯一特例及解析

《重学安卓:绝不丢失状态的 Activity 重建机制》

  • 前言

  • 因为心里没底,而不敢用的状态恢复

  • 什么是重建?引发重建的场景有哪些?

  • 为何要设计出重建的机制?有何好处?

  • 状态保存和恢复的具体过程?(99% 的网文遗漏的关键细节)

  • 状态保存和恢复的的注意事项?

  • Note 2020.3.15 加餐:

    • onSaveInstanceState 的执行时机在新 API 中已确定

  • 如何避免 “配置发生变化” 导致的重建?

  • 综上

  • Note 2021.5.13 加餐:

    • 更简便 且不易出错的 “状态保存恢复” 方式

    • App 切到后台,页面临时数据 “防丢” 的妙招

《重学安卓:你丢了 offer,只因拎不清 Activity 任务和返回栈》

  • 前言

    • 提出了正确的问题,事情就解决了一半

    • Activity 任务、返回栈、启动模式的 7 个扪心自问

  • 任务和返回栈

    • 任务和返回栈 的概念分别为何?

    • 为何分别存在任务和返回栈?

  • 启动模式

    • 为何存在 启动模式 的设计?

    • 4 种启动模式,表面上的特点分别为何?

    • 为何存在 多种启动模式 的设计?

    • 如何设置启动模式?

    • SingleTask 如何指定与哪个任务关联?

      • Note 2021.4.30 加餐:

      • DeepLink 和 allowTaskReparenting 实验的复现方式 和 注意事项

  • 任务清空或保留 Activity 的几种方式?

  • Note 2020.11.18 加餐:

    • 对启动模式和 FLAG 区别的补充说明

  • 综合案例

    (证实了 返回栈 相对于 任务 的独立存在,全程动图和截图为证)

    • Note 2020.6.17 加餐:

    • 综合实验简化重制版

  • 福利时间到!魔鬼就在细节中 —— 全网独家的、严密测试的 5 个结论:

    • taskAffinity 真实的适用范围

    • standard 和 singleTop 的真实本质

    • singleTop 的真实本质

    • singleTask 的真实本质及实验佐证

    • singleTask 和 singleInstance 与最近访问列表的关系

  • Note 2020.5.17 加餐:

    • 一个 app 能有多少个 ActivityStack

    • Note 2020.07.27 加餐:

    • 如何在打印信息中正确区分 TaskRecord 和 ActivityStack

    • Note 2020.08.10 加餐:

    • 通过 Android 9.0 的新 ADB 命令获取简洁的 Activity 堆栈信息

    • 最近访问列表中展示的卡片到底是什么

  • Note 2020.5.28 加餐:

    • 对 5.17 疑问的实验检验结果

  • Note 2020.6.29 加餐:

    • SingleTask 和 SingleInstance 不新建 Task 的特殊情况

    • 为什么 SingleInstance Activity 回退直接回到桌面

  • Note 2021.6.30 加餐:

    • 系统为何不设计为直接通过 ActivityStack 来管理 ActivityRecord?

《重学安卓:Intent 好比你的择偶标准》

  • 前言

  • 不得不先讲的 Intent 匹配机制

  • 关于 Intent 的 7 个深度思考

    • 为何存在路由的设计?

    • 为何存在三大组件的设计?

    • 为何要让 Binder 来当媒婆?

    • Intent 存在哪几种类型?为何存在这样的区别?

    • 隐式 Intent 的匹配依据?

    • IntentFilter 的概念和作用为何?

    • 基于 Intent 和 IntentFilter 的匹配规则,提炼出的 4 个要点

  • 关于 Intent 的 3 个实用方法

  • Intent 使用的 7 个注意事项?

  • 综上

《重学安卓:我的碎片很听话,你的 Fragment 有自己的想法》

  • Fragment 的缘起和职责为何?

  • Fragment 回退栈和 Activity 的区别?为何存在这样的区别?

  • Fragment 通信与 Activity 的区别?为何存在这样的区别?

  • Fragment 生命周期为何如此设计?

  • Fragment 生命周期和 Activity 的关系?

  • Fragment 的重建和状态管理与 Activity 的区别?

  • 为何会导致 Fragment 重叠?

  • 为何推荐使用 DialogFragment?

  • 为何视图控制器建议用 Fragment 而不是 Activity?

  • 综上

  • Note 2020.3.31 加餐:

    • Fragment 最新 API 支持 replace 回退后的状态恢复

  • 后记

上一页目录下一页标准化开发模式

最后更新于3年前

这有帮助吗?