文章目录
这篇文章还是在于一位前辈的交流过程中汲取到的,之前也有看网上的关于SystemUI的内容,但是都没有从架构角度去琢磨SystemUI,我一位SystemUI小白就先在这里班门弄斧了,希望各位看官们抱着批评的态度去读文章,也希望能够把我认知的错误指点出来。
1. SystemUI的架构图
这里的这个架构图与以往的不同,我是从程序耦合关联的紧密程度的角度上去看SystemUI的。
可以通过StatusBarManagerService跨进程调用SystemUI里面的服务,其主要桥梁就是CommandQueue,关于CommandQueue.Callbcks的类图:
2. 对我的架构图的解释
2.1 为什么要将SystemUIService和SystemUIApplication放在一层?
我是这样考虑的,在AMS
的onSystemReady
中启动了SystemUIService
,同时又调用了startServicesIfNeeded
,但是SystemUIApplication
中要启动的这些抽象服务,相对于SystemUIApplication
这个类来讲,它是完全不知道有哪些服务的,因为这些服务是从string-array
中获取的,然后通过反射来