Android Framework學習筆記之通信原理


BinderService:

bindService能實現的一個前提就是Android爲我們提供了一套AIDL(Android Interface Definition Language)即Android接口定義語言,來幫助我們實現遠程
Binder的通信

主要流程:

  1. Activity向ActivityManagerService發送一個綁定xxxService組件的進程間的請求。
  2. ActivityManagerService在接到請求後檢查運行XXXService組件的進程是否處於運行狀態,如果沒有運行就啓動這個進程。
  3. 在運行XXXService的進程啓動後,ActivityManagerService就請求它返回一個Binder的本地(代理)對象,以便於Activity通過這個Binder對象和Service建立連接。
  4. AMS將從XXXService中獲得本地(代理)Binder對象發送給Activity。
    Activity在獲得Binder對象後就可以去訪問XXXService中實現的接口。

爲什麼Intent傳輸數據大小有限制:
(同步傳遞)Binder通信共享內存的大小範圍爲10241024-40962
(異步傳遞)異步傳遞大小要除以2

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