Android開發藝術探索-- IPC

1 基本概念

1.1 android開啟多進程的方式:

  • 在menifest中指定android:process屬性
  • 通過jni在native層fork一個進程

兩種配置process的方式

1    android:process:":remote"
2    android:process:"com.ryg.cha.remote"

:方式表示在當前進程名后加上remote,為當前應用私有進程,其它應用的組件不可以跑在這個進程。
而完整進程名的進程屬于全局進程,其它應用的組件可以通過shareUID和它跑在統一進程。(還需要簽名相同。)

1.2 Serializable和Parceable接口

接口類型 使用步驟 特點 適用場景 注意事項
Serializable 實現Serializable接口并聲明serialVersionUID java接口,使用簡單但開銷大,生成大量臨時變量,大量IO,容易引起頻繁GC 序列化到存儲設備或者網絡傳輸 transient變量不參與序列化
Parceable 實現Parcelable接口,(1)重寫writeToParcel方法,序列化為Parcel對象;(2)describeContents,默認返回1(3)實例化靜態內部對象CREATOR實現接口Parcelable.Creator,反序列化 android接口,效率更高,性能更優,推薦方式 內存序列化(例如Intent間數據傳遞、IPC),不能使用在將數據存儲在磁盤的情況 成員變量中有對象類型時,反序列化需要傳遞當前線程的上下文類加載器

更多內容可參考:Android中Serializable和Parcelable序列化對象詳解

1.3 序列化與持久化的區別

名稱 作用 解決什么問題
序列化 把內存中的對象變成流的形式 對象傳輸的問題,如何把對象變成字節流
持久化 將內存中的對象存儲在永久保存的磁盤上面 對象存儲和恢復的問題

參考:JAVA的序列化和持久化的區別與聯系

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容