1.大名鼎鼎的Binder继承类图
Android系统中,承担IXXX角色的业务接口类有很多,例如IServiceManager,IGpuService, IMediaResourceMonitor, IBatteryStats, IAppOpsService, IProducerListener, ISurfaceComposer,IGraphicBufferProducer,ISensorServer, IDisplayEventConnection等等。其中IServiceManager貌似只有Bp端,没有 Bn端,Bn端直接是servicemanager这个进程调用Binder裸驱动实现的服务。

以IBatteryStats为例,它的实现继承类图就是将IXXX替换为自己定义的业务接口类的定义:



这几乎是个万能架构,也可以说是一种设计模式,任何符合C-S模式的的应用场景都可以使用
一次binder会话的时序图:

2.另一种适合小型嵌入式的实现

序列化和反序列化操作。

本文深入探讨了Android系统中的Binder机制,通过IBatteryStats举例展示了Binder的继承类图,揭示了其通用架构。同时,提到了适用于小型嵌入式系统的序列化和反序列化操作。文中还附带了一次Binder会话的时序图,帮助理解Binder工作流程。
306





