文章转载自:liangkz
从《系统服务框架子系统》系列文章(见专栏文章列表)发布的6月初到现在的7月初,刚好一个月,基本上把鸿蒙的轻量系统和小型系统的 //foundation/distributedschedule/samgr_lite/ 目录下的代码做了一个比较清晰的理解了,中间走过弯路,有过中断,也有半夜爬起来撸代码的时候,但基本上来看,还是值得的,累与成就感并存。
前期有段时间主要是在代码中埋大量的log,通过的整理和增减log来理解程序流程,理解的东西越多,需要的log就越少。
当对代码的理解卡在某个地方的时候,百度也不给力,真的是如鲠在喉很难受,一旦突破了关键点,顿时感觉醍醐灌顶,有如神助。
后面就是一边整理理解体系,一边制表/画图/写字,码字速度跟不上思维的速度了。
当然,还有不少细节的地方有待进一步挖掘和研究,估计还能挖出不少知识盲点,比如对接口的访问权限的使用;有些相关联的地方也有待延伸过去理解,比如ipc通信那边的ipc_lite;而broadcast service/feature在小型系统中的作用也还没有搞清楚(只看见Init,但是没看见真正调用过相关接口);但大体上,这个模块就先阶段性地结束了。
至于标准系统的这个子系统,我粗略对比了一下代码,感觉可能是使用了一套完全不一样的实现方法,并且是用C++来实现的,不仅仅是这个子系统,其他子系统/组件,也是这么个情况。比如上一篇提到的appspawn组件,小型系统是appspawn_lite,标准系统是appspawn_standard,一比较你会发现完全是两码事。
所以再回到//foundation/distributedschedule/目录下:
轻量系统和小型系统跑的是 xxx_lite,标准系统跑的是 xxx,标准系统的还是C++实现的,很疑惑这代码的复用性和延续性,是不是有点问题?(有待未来的分析确认)。
不管怎么样,对于《系统服务框架子系统》系列文章,如果大家发现我有理解不到位或者理解错误的地方,欢迎指出来让我改正,以免误人子弟。感谢!