《Android》『Serializable、Parcelable』- 兩種序列化介面的基本介紹
Serializable 與 Parcelable 都是在 Android 中可以使用的一種將資料序列化的介面,在探討序列化之前,首先,我們必須先了解什麼是序列化以及為什麼我們要序列化,以下將針對一些觀念做說明。
1. 為什麼要序列化?
當我們在進行 Android 程式開發時,常常會需要將一些資料從一個頁面傳遞給另一個頁面,可能是不同 Activity 或是 Fragment 之間的傳遞,或者是兩個 App 之間傳遞(IPC),通常透過 Intent 的方式,我們只能傳遞基本型別的資料,若想要傳遞的資料是我們自訂的一個類別所產生的物件,這時為了讓資料可以正常的傳遞,就必須將這個資料的類別序列化。
2. 什麼是序列化?
序列化的意思就是將一個自訂的資料類別,轉換成可儲存或者是可傳輸的狀態(基本型別)。
3. 如何透過序列化傳送自訂的資料類別?
Android 中的 Intent 如果要傳遞自訂的資料類別,可以透過兩種方式,就是將該資料類別實作 Serializable 或是 Parcelable 其中一種序列化介面,兩種介面的目的都是將資料序列化,其中 Serializable 是 Java 自帶的介面,Parcelable 則是 Android 專用的介面。
4. Serializable 與 Parcelable 的差異
通常來說 Parcelable 的效能會比 Serializable 快上許多,因為在實作 Serializable 介面時,我們基本上什麼事情都不用做,直接 implement 即可,但在實作 Parcelable 介面時,我們必須額外定義內部資料的轉換方式,另外在實作 IPC 資料傳遞時,亦推薦使用 Parcelable 介面來傳遞自訂的資料類別。
之後會分別針對這兩個不同的介面,介紹實際的使用方式。
臉書留言
一般留言