Binder系統_c++程式實現

HY--發表於2017-12-27

程式結構改進:

server client  server你要提供服務函式 client你要使用服務函式,雙方是應該知道的

一、在一個H檔案裡抽象出這兩個函式的框架這裡是

IHelloService.h

二、在server端以前的C函式只寫在一個檔案,現在將他們分離開,使server端各個模組獨立。

比如BnHelloService.cpp(Binder本地Hello服務)然後去實現標頭檔案的兩個服務函式。(真正的服務函式)

還必須有一個onTransact()函式用來解析發過來的資料然後具體呼叫哪一個函式。(解析呼叫哪一個服務)

三、在client同樣將他們獨立開

比如BpHelloServie.cpp (Binder服務代理)然後同樣是去完成使用者端的服務使用。(使用服務的哪個函式引數需要它來封裝傳送   傳送端

四、在現在的server端的上一層應該做的是,while迴圈一直詢問有沒有資料。(檢視是否有人需要服務,接收端

五、在client的上一層就是用了呀比如用sayhello()函式

六、介於三四這兩端,需要提供Binder.c庫用來完成真正的細節傳送接收。

class BpMediaPlayerService: public BpInterface<IMediaPlayerService>

BpMediaPlayerService相當於是從IMediaPlayerService和BpRefBase這兩個類派生出來的。

BnMediaPlayerService相當於是從IMediaPlayerService和BBinder這兩個類派生出來的。

Binder服務的C++實現首先要給服務端和客戶端定義介面類,然後server端實現這些函式,client實現這些函式。


相關文章