Android进程间通信的方式
1.Bundle/Intent四大組件之間傳遞數(shù)據(jù)
2.文件共享
3.Broadcast
廣播是一種被動跨進程通訊的方式。當某個程序向系統(tǒng)發(fā)送廣播時,其他的應(yīng)用程序只能被動地接收廣播數(shù)據(jù)。
4.ContentProvider
Android系統(tǒng)四大組件之一,底層也是Binder實現(xiàn)的,主要用來為其他APP提供數(shù)據(jù)。
5.AIDL
AIDL通過定義服務(wù)端暴露的接口,以提供給客戶端來調(diào)用。通過編寫aidl文件來設(shè)計想要暴露的接口,編譯后會自動生成響應(yīng)的java文件,服務(wù)器將接口的具體實現(xiàn)寫在Stub中,用iBinder對象傳遞給客戶端,客戶端bindService的時候,用asInterface的形式將iBinder還原成接口,再調(diào)用其中的方法。
6.Messenger
Messenger是基于AIDL實現(xiàn)的,服務(wù)端(被動方)提供一個Service來處理客戶端(主動方)連接,維護一個Handler來創(chuàng)建Messenger,在onBind時返回Messenger的binder。
雙方用Messenger來發(fā)送數(shù)據(jù),用Handler來處理數(shù)據(jù)。Messenger處理數(shù)據(jù)依靠Handler,所以是串行的,也就是說,Handler接到多個message時,就要排隊依次處理。
7.Socket
服務(wù)器中定義ServerSocket來監(jiān)聽端口,客戶端使用Socket來請求端口,連通后就可以進行通信。
總結(jié)
以上是生活随笔為你收集整理的Android进程间通信的方式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android多进程引发的问题
- 下一篇: Android中Messenger进程间