1. 程式人生 > >Android之IPC程序通訊方案適用場景總結

Android之IPC程序通訊方案適用場景總結

IPC是 Inter-Proscess Communication的縮寫,含義為程序間的通訊或者跨程序通訊,是指兩個程序之間進行資料交換的過程。

名稱 優點 缺點 適用場景
Bundle 簡單易用 只能傳輸Bundle支援的資料型別 四大元件間的程序通訊
檔案共享 簡單易用 不適合高併發場景,並且無法做到程序間的即時通訊 無併發訪問情形,交換簡單的資料實時性不高的場景
AIDL 功能強大,支援一對多併發通訊,支援實時通訊 使用稍複雜,需要處理好執行緒同步 一對多通訊且有RPC需求
Messenger 功能一般,支援一對多串發通訊,支援實時通訊 不能很好處理高併發情形,不支援RPC,資料通過Message進行傳輸,因此只能傳輸Bundle支援的資料型別 低併發的一對多即時通訊,無RPC需求,或者無需返回結果的RPC需求
ContentProvider 在資料來源訪問方面功能強大,支援一對多併發資料共享,可通過Call方法擴充套件其他操作 可以理解為受約束的AIDL,主要提供資料來源的CRUD操作 低併發的一對多程序間的資料共享
Socket 功能強大,可以通過網路傳輸位元組流 實現細節稍微有點繁瑣,不支援直接的RPC 網路資料交換

RPC(Remote Procedure Call)—遠端過程呼叫,它是一種通過網路從遠端計算機程式上請求服務,而不需要了解底層網路技術的協議。

備註:出自《Android開發藝術探索》