【正文】
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 的功能了。 同樣地,在 Java層也增添一個(gè) 類別,扮演 Adapter 的角色,將 IBinder 接口包裝起來,轉(zhuǎn)換出可呈現(xiàn) ServiceManager 服務(wù)各項(xiàng)功能的新接口 (即IServiceManager)。徒增加 C++ Client模組開發(fā)者的麻煩。 如下圖: 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 C+ + Cl i e n t 圖 C++層 Client呼叫 Service Manager 這 C++ Client能使用 C++層的 ServiceManager 服務(wù),但無法 使用 Java 層的SensorService 服務(wù) 了。 ? IBinder的角色 啟動(dòng)完成後,就能讓 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 Co r e L i b ra r i e s A n d r o i d Ru n t i m e VM 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 H A L 圖 Service Manager 是天字第一號(hào)核心服務(wù) ? ServiceManager負(fù)責(zé)登記其他的 Core S