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

適用場景

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章