andoid ipc方式主要有以下幾種:
1.bundle :
簡單易用 但是只能傳輸bundle支援的物件 常用於四大元件間程序間通訊
2.檔案共享:
簡單易用 但不適合在高併發的情況下 並且讀取檔案需要時間 不能即時通訊 常用於併發程度不高 並且實時性要求不高的情況
3.aidl :
功能強大 支援一對多併發通訊 支援即時通訊 但是使用起來比其他的複雜 需要處理好多執行緒的同步問題 常用於一對多通訊 且有rpc 需求的場合(服務端和客戶端通訊)
4.messenger :
功能一般 支援一對多序列通訊 支援實時通訊 但是不能很好處理高併發情況 只能傳輸bundle支援的型別 常用於低併發的無rpc需求一對多的場合
5.contentprovider :
在資料來源訪問方面功能強大 支援一對多併發操作 可擴充套件call方法 可以理解為約束版的aidl 提供crud操作和自定義函式 常用於一對多的資料共享場合
6.socket :
功能強大 可以通過網路傳輸位元組流 支援一對多併發操作 但是實現起來比較麻煩 不支援直接的rpc 常用於網路資料交換
總結起來
當僅僅是跨程序的四大元件間的傳遞資料時 使用bundle就可以 簡單方便
當要共享乙個應用程式的內部資料的時候 使用contentprovider實現比較方便
當併發程度不高 也就是偶爾訪問一次那種 程序間通訊 用messenger就可以
當設計網路資料的共享時 使用socket
當需求比較複雜 高併發 並且還要求實時通訊 而且有rpc需求時 就得使用aidl了
檔案共享的方法用於一些快取共享 之類的功能
android ipc程序間通訊(概述)
介紹一些ipc的基礎概念。為後面介紹程序間通訊例項打鋪墊。介紹一些程序間通訊的方式,各個優缺點。一些常用的ipc方式 程序和執行緒 執行緒 程序可以包含多個執行緒。序列化介面 parcelable 怎麼在乙個應用裡建立多個程序?在四大元件裡指定 配置 建立私有程序 android process p...
android IPC通訊中的UID和PID識別
ipcthreadstate物件維護了2個變數 pid t mcallingpid uid t mcallinguid 從變數名稱來看,這2個變數儲存了程序的pid和uid,並且由於這兩個變數由ipcthreadstate物件維護,可見它們是與ipc相關的。具體它們儲存的是ipc傳送方的pid和ui...
程序通訊方式 與 執行緒通訊方式
程序通訊方式 與 執行緒通訊方式 程序通訊方式 7種 管道pipe 管道是一種半雙工的通訊方式,資料只能單向流動,而且只能在具有親緣關係的程序間使用。程序的親緣關係通常是指父子程序關係。命名管道fifo 有名管道也是半雙工的通訊方式,但是它允許無親緣關係程序間的通訊。訊息佇列messagequeue...