1. 程式人生 > >IPC 機制(開發藝術探索)

IPC 機制(開發藝術探索)

IPC 機制

文章目錄


**IPC:**Inter-Process Communication的縮寫,跨程序通訊

使用場景:

1.分配更大的記憶體空間

2.防止程序被殺死

3.為至程序分擔壓力

使用時需注意的問題:

1.靜態成員和單例模式完全失效(不是同一塊記憶體,會產生不同的副本)

2.執行緒同步機制完全失效(不是同一塊記憶體,所以物件也不是同一個,因此類鎖、物件鎖也不是同一個,不能保證執行緒同步)

3.SharedPreferences 可靠性下降(SharedPreferences不支援多個程序同時寫,會有一定的機率丟失資料)

4.Application 多次建立(Android為每個程序分配獨立的虛擬機器,這個過程其實就是啟動一個應用,所以Application會被建立多次),所以我們不能直接將一些資料儲存在Application中。

使用方法:

1.四大元件在AndroidMenifest中指定android:process屬性

2.JNI層面上去fork一個新的程序

原理:

程序間,使用者空間的資料不可共享,所以使用者空間 = 不可共享空間

程序間,核心空間的資料可共享,所以核心空間 = 可共享空間

先通過 程序間 的核心空間進行 資料互動,再通過 程序內 的使用者空間 & 核心空間進行 資料互動,從而實現 程序間的使用者空間 的資料互動
在這裡插入圖片描述

基礎知識:

序列化:Serializable(持久化) Paecelable(序列化)

Serializable:java 自帶的介面,使用簡單但開銷大

Paecelable: Android 中序列化的方式,效率相對較高

區別:Parcelable 主要用於IPC中的序列化(記憶體序列化),Serializable在Android中更偏持久化的含義,在序列化到儲存裝置、網路傳輸方面,更優秀

通訊方式(待完善)

Bundle

共享檔案

Messenger

AIDL

ContentProvider

Socket

適用場景

在這裡插入圖片描述