Android之跨進程通訊Binder介紹

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真實對象,從而完成通信。

 

資料源自互聯網,如有侵權,請聯繫我

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章