Android程序员如何快乐地学Activity?( 二 )


换言之 , 主人只需以模板方法模式的方式将我重新封装 , 并且编写一套管理窗口的任务和返回栈机制在背地里运筹帷幄 , 那么未来的开发者就只需继承我 , 而得到一个简练的配置模板 , 从而在模板上面输入他们的定制内容 , 以得到他们想要的结果 。
于是我改名叫 ActivityWindow 成了我永恒不变的信仰 , 存留在我的体内 。对于开发者来说 , 我就是个待继承的 Activity , 开发者通过继承我 , 拿到的就是一个个简练的模板 。
对系统来说 , 我的本质仍是被管理的窗口 , 系统能够管理我和其他窗口的切换和通信 。
对开发者来说 , 我的本质是视图控制器 , 开发者通过我可以控制 View 以他们想要的方式进行排版 , 并且在特殊状况下保存和恢复 View 的排版内容 。
综上最开始只有一块运行着原始 Android 系统的板砖 。

  • Surface Flinger 的出现是为了更加方便地完成 UI 渲染 。
  • Window 的出现是为了管理 UI 内容的排版 。
  • Window 不堪重负于是将责任下发到 View 身上 。
  • View 通过组合模式 , 在递归的帮助下蹭蹭蹭地完成排版工作 。
  • Activity 的出现是为了满足多窗口管理和傻瓜式视图管理的需要 。
  • 所以 Activity 的知识边界无非就是生命周期、特殊状况导致的重建、多窗口跳转(启动模式、intent)、视图的加载和优化等等 。
这样说 , 你理解了吗?




推荐阅读