Treble架构为了把HAL实现从Framework进程分离出来在binder下面做了些什么呢
1.给HAL实现也单独启一个进程damen,而不是在同一个进程中dlopen(so)
2.进程之间还使用binder通信
3.定义接口规则(HIDL/AIDL HAL)来规范化与协商,保证系统正常运行
最终google对binder进行了扩展,实现了vndbiner和hwbinder,对于ServiceManager也做了相应的实现,我们知道ServiceManager对binder service是有add get等一些操作的,所以不难看出来他们之前也是分开管理的,如图:
google的想法是把所有的功能都模块化进程化,然后利用binder来进行IPC通讯,对于binder linux 5.0也加入了binderfs 这样一个文件系统也是大改,对于调试也是公开增加一些节点减少了debug的复杂度 /dev/binderfs/binder_logs, google把vold installd从socket转成了binder, binder化不可阻挡啊。
关系图