安卓進階(2)之android Binder通信理解

關鍵字

  1. aidl
  2. 進程間通信
  3. binder機制

aidl

全名安卓接口定義語言,用於進程間通信。簡單理解的話,就是類似應用的服務器和客戶端。服務器開啓一個服務處理數據,客戶端傳遞數據以及響應回調。具體使用方法見AndroidStudio實現AIDL建議自己跟着文章手寫一遍,並細看build之後由aidl文件生成的java文件中內容。

4種進程間通信

  1. Activity(應用跳到撥打電話頁面)
  2. ContentProvider(獲取手機系統聯繫人信息,音視頻等)
  3. BroadcastReceiver(類似聽收音機的廣播,被動接收)
  4. Service(遠程Service,跟aidl結合使用)

Binder機制

Binder是安卓進程間通訊的一種方式,aidl是Binder通信的一個實踐,Binder採用的是C/S架構,最上層的java層(C/S),經過framework層,JNI層,native層,最終通過ioctl(對設備io通道進行管理)跟內核層進行通信。貫穿始終的是一個叫做ServiceManger的管理類。每啓動一個server進程,就會默認生成16個線程大小的線程池(每個應用的客戶端跟server交互產生一個線程,就算是百度或者360全家桶,16個線程也已足夠)。

參考文章
AndroidStudio實現AIDL
Android 進程間通信的幾種實現方式
Android Binder 進程間通訊機制

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