android IPC通訊方式簡述

2021-07-28 19:22:36 字數 859 閱讀 9356

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...