Android IPC進程間通訊機制學習筆記

來源:互聯網
上載者:User

一.Linux系統處理序間通訊有哪些方式?

1.socket;

2.name pipe具名管道;

3.message queue訊息佇列;

4.singal訊號量;

5.share memory共用記憶體;

 

二.Java系統的通訊方式是什嗎?

1.socket;

2.name pipe;

 

三.Android系統通訊方式是什嗎?

Binder 通訊;

 

四.Binder通訊的優勢是什嗎?

高效率

 

五.Binder通訊的特點是什嗎?

是同步,而不是非同步;

 

六.Binder通訊是如何?的?

1.Binder通訊是通過linux的binder driver來實現的,

2.Binder通訊操作類似線程遷移(threadmigration),兩個進程間IPC看起來就象是一個進程進入另一個進程執行代碼然後帶著執行的結果返回;

3.Binder的使用者空間為每一個進程維護著一個可用的線程池,線程池用於處理到來的IPC以及執行進程本地訊息,Binder通訊是同步而不是非同步。

 

七. Android中的 Binder通訊實現要點:

1. Android中的Binder通訊是基於Service與Client的工作模型的;

2. 所有需要IBinder通訊的進程都必須建立一個IBinder介面;

3. 系統中有一個進程管理所有的system service:

4. Android不允許使用者添加非授權的Systemservice;

5. 現在源碼開放了,我們可以修改一些代碼來實現添加底層system Service的目的;

6. 對使用者程式來說,我們也要建立server,或者Service用於處理序間通訊;

7. ActivityManagerService管理JAVA應用程式層所有的service建立與串連(connect),disconnect;

8. 所有的Activity也是通過這個service來啟動,載入的;

9. ActivityManagerService也是載入在Systems Servcie中的;

 

八.Android的 Service工作流程

1.Android虛擬機器啟動之前系統會先啟動service Manager進程;2.service Manager開啟binder驅動,並通知binder kernel驅動程式這個進程將作為System Service Manager;

3.然後該進程將進入一個迴圈,等待處理來自其他進程的資料。4.使用者建立一個System service後,通過defaultServiceManager得到一個遠程ServiceManager的介面,通過這個介面我們可以調用addService函數將System service添加到Service Manager進程中;

5.然後client可以通過getService擷取到需要串連的目的Service的IBinder對象,這個IBinder是Service的BBinder在binder kernel的一個參考,

6.所以serviceIBinder 在binder kernel中不會存在相同的兩個IBinder對象,每一個Client進程同樣需要開啟Binder驅動程式。對使用者程式而言,我們獲得這個對象就可以通過binderkernel訪問service對象中的方法。

7.Client與Service在不同的進程中,通過這種方式實現了類似線程間的遷移的通訊方式,對使用者程式而言當調用Service返回的IBinder介面後,訪問Service中的方法就如同調用自己的函數。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.