换言之 , 主人只需以模板方法模式的方式将我重新封装 , 并且编写一套管理窗口的任务和返回栈机制在背地里运筹帷幄 , 那么未来的开发者就只需继承我 , 而得到一个简练的配置模板 , 从而在模板上面输入他们的定制内容 , 以得到他们想要的结果 。
于是我改名叫 ActivityWindow 成了我永恒不变的信仰 , 存留在我的体内 。对于开发者来说 , 我就是个待继承的 Activity , 开发者通过继承我 , 拿到的就是一个个简练的模板 。
对系统来说 , 我的本质仍是被管理的窗口 , 系统能够管理我和其他窗口的切换和通信 。
对开发者来说 , 我的本质是视图控制器 , 开发者通过我可以控制 View 以他们想要的方式进行排版 , 并且在特殊状况下保存和恢复 View 的排版内容 。
综上最开始只有一块运行着原始 Android 系统的板砖 。
- Surface Flinger 的出现是为了更加方便地完成 UI 渲染 。
- Window 的出现是为了管理 UI 内容的排版 。
- Window 不堪重负于是将责任下发到 View 身上 。
- View 通过组合模式 , 在递归的帮助下蹭蹭蹭地完成排版工作 。
- Activity 的出现是为了满足多窗口管理和傻瓜式视图管理的需要 。
- 所以 Activity 的知识边界无非就是生命周期、特殊状况导致的重建、多窗口跳转(启动模式、intent)、视图的加载和优化等等 。
推荐阅读
- Android开发:手把手带你入门跨平台UI开发框架Flutter
- android知识点总结
- Android指纹识别,提升APP用户体验,从这里开始
- 作为Android开发者 你知道Android按下开机键到启动发生什么吗?
- Android代码混淆到底是什么?它的好处有哪些?具体效果如何?
- 如何选购电脑内存条?小白装机通俗易懂的电脑内存选购知识指南
- 开发第一个Android应用之前你需要知道的六件事
- 学习Android开发的二十套免费理想资源
- 9款Android经常使用的高速开发框架
- 学会这些你就是Android 开发高手了!