Activity 猜想
今天大致研究了安卓进程创建流程, 对比了Qt项目, 很好奇, 我的Activity里面并没有设置消息循环或者其他的阻塞方式去让成程序一直执行, 但是很奇怪, 安卓程序他自己就一直在运行, 这很奇怪哦.
按照正常逻辑, 一个进程要一直执行, 就必须阻塞, 占用CPU, 包括Activity的回调函数, 确实很奇特.
按照程序的执行流程, 我特意去操作系统仔细看了一遍, 进程是如何创建, 执行, 包括自己平时写的代码, 一个最简单的一直输出"Hello, world"都是有一个循环, 但是安卓程序的创建就没有.
我现在估计, 谷歌一定是把一个应用程序进程封装成为一个框架, 我写的所有的Activity都是这个进程的组件, 就像万事俱备, 只留下了一个坑, 你把需要的组件丢到这个坑里, 然后这个程序就运行起来了.
我后来一琢磨, 这其实也是高度模块化, 当谷歌故意把一个应用进程的全部创建做成一个模板, 变的只是其中的内容, 这样的方式, 确确实实降低了开发难度, 包括对整个应用的开发, 可以使开发者远离复杂的逻辑, 而专注与内容的提供, 谷歌确实聪明.
今天还看了jetpack, 这个东西设计也很好, 组件的耦合度很低, 确实把各个功能抽象剥离的很不错, 安卓系统还是很值得我们去研究他的设计理念, 这种高度模块化以及低耦合, 确实很好.即使对于一个大型项目, 这样的组建设计, 维护起来也是简单许多,毕竟对开发者来说他们只暴露接口, 很不错.
这个其实挺像泛型思维, 我觉得一个好的易用的框架必须学习这样的方式, 让开发者更专注于内容提供, 而不是技术的细节, 大大提高开发效率.
但是要去理解一个技术又得从他的实现整体, 或者更具体的地方.
2021.10.27
赵鹏
---------------------------------------------------------------------------------------------------------------------------------