Binder是Android中的一種跨進程通信方式
- 從Android Framework 角度來說Binder是ServiceManager連接各種Manager(ActivityManager、WindowManager等等)和相應ManagerService的橋樑;
- 從Android應用層來說Binder是客服端與服務端進行通信的媒介。
我們知道:進程間是相互獨立的,數據不能共享,互不干擾,因爲Android提供了AIDL方式(內部實際是通過binder),實現各個應用進程間通信。
Binder通信模型
PS:Server是提供服務的程序,Client是發起通訊請求的程序。
- 註冊建立ServiceManager表。
- Service1、Service2通過Binder驅動申請註冊到ServiceManager中。
- Client需要與Service2進行通信,跨進程無法直接通信,需要先通過ServiceManger中查詢到Service2。藉助Binder驅動返回一個Service2的代理對象。Client直接跟Service2代理對象進行操作,通過Binder驅動映射操作Service2真實對象,從而完成通信。
資料源自互聯網,如有侵權,請聯繫我