淺談IPC通信之各方式對(duì)比使用及場(chǎng)景(四)

前邊三篇已經(jīng)講解了IPC所涉及的內(nèi)容,現(xiàn)在切入正題了......

Binder機(jī)制

androidIPC機(jī)制就是Binder機(jī)制,是提供遠(yuǎn)程過程調(diào)用(RPC)功能,在Binder機(jī)制中,由系統(tǒng)組件組成,分別是Client、Server、Service Manager和Binder驅(qū)動(dòng)程序,其中Client、Server和Service Manager運(yùn)行在用戶空間,Binder驅(qū)動(dòng)程序運(yùn)行內(nèi)核空間。Binder就是一種把這四個(gè)組件粘合在一起的粘結(jié)劑了,其中,核心組件便是Binder驅(qū)動(dòng)程序了,Service Manager是一個(gè)守護(hù)進(jìn)程,用來管理Server,并向Client提供查詢Server接口的能力,是輔助管理的功能,Client和Server正是在Binder驅(qū)動(dòng)和ServiceManager提供的基礎(chǔ)設(shè)施上,進(jìn)行Client-Server之間的通信;

IPC通信方式

1.Bundle:一般用于四大組件間的進(jìn)程間通信,簡(jiǎn)單易用
2.文件共享:通過IO方式把數(shù)據(jù)寫到文件里進(jìn)行通信,需要注意序列化
3.AIDL:AIDL是IPC的一個(gè)輕量級(jí)實(shí)現(xiàn)
4.ContentProvider:ContentProvider相當(dāng)于為數(shù)據(jù)存儲(chǔ)和獲取提供了一個(gè)統(tǒng)一的接口
5.Messenger: Messenger本質(zhì)也是AIDL,只是進(jìn)行了封裝,開發(fā)的時(shí)候不用再寫.aidl文件,所以相對(duì)于AIDL較于簡(jiǎn)單。
6.Socket:一般用來網(wǎng)絡(luò)數(shù)據(jù)的交換

各方式對(duì)比及使用場(chǎng)景

IPC通信方式對(duì)比.png

使用方法(參考demo)

包含所有IPC通信
https://github.com/jackandroid2016/IPCDemo

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容