【正文】
r v i c e M a n a g e r IBi n d e r Bi n d e r D ri v e r L i n u x K e r n e l re f e r e n c e A n d r o i d S e r v i c e S e n s o rS e r v i c e IBi n d e r A n d r o i d Ru n t i m e H A L 圖 啟動了許多核心服務(wù) 在 開機過程中,會啟動許多項核心服務(wù), ServiceManager 和 SensorService 只是其中的兩個而已。 ? IBinder的角色 啟動完成後,就能讓 C++層或 Java層的 Client模組來綁定 (Bind)、連結(jié) (Connect)和呼叫 (Invoke)這些核心服務(wù)了。 如下圖: N a t i v e S e r v i c e M a n a g e r IBi n d e r Bi n d e r D ri v e r L i n u x K e r n e l re f e r e n c e A n d r o i d S e r v i c e S e n s o rS e r v i c e IBi n d e r A n d r o i d Ru n t i m e S e r v i c e M a n a g e r . c p p C+ + Cl i e n t IS e rv i c e M a n a g e r 圖 C++ 層 Client使用 IServiceManager 接口 同樣地, Java Client模組就能使用較親切的 IServiceManager 接口來呼叫ServiceManager 的功能了。前面說明過,核心服務(wù)能以C++或 Java 來撰寫, 如果改用 C++來撰寫的話,就由 C++層的 SensorService 核心服務(wù)來呼叫 HAL模組,並提供 IBinder 接口。如下圖: N a t i v e S e r v i c e M a n a g e r Bi n d e r D ri v e r L i n u x K e r n e l re f