當前位置:首頁 » 安卓系統 » android對象序列化

android對象序列化

發布時間: 2024-10-07 20:01:28

『壹』 java android 實現parcelable序列化,為什麼必須要實現CREATOR

你好:
Android序列化對象主要有兩種方法,實現Serializable介面、或者實現Parcelable介面。實現Serializable介面是Java SE本身就支持的,而Parcelable是Android特有的功能,效率比實現Serializable介面高,而且還可以用在IPC中。實現Serializable介面非常簡單,聲明一下就可以了,而實現Parcelable介面稍微復雜一些,但效率更高,推薦用這種方法提高性能。下面就介紹一下實現Parcelable介面的方法
通過實現Parcelable介面序列化對象的步驟:
1、聲明實現介面Parcelable
2、實現Parcelable的方法writeToParcel,將你的對象序列化為一個Parcel對象
3、實例化靜態內部對象CREATOR實現介面Parcelable.Creator:
Java代碼
public static final Parcelable.Creator<T> CREATOR

其中public static final一個都不能少,內部對象CREATOR的名稱也不能改變,必須全部大寫。
4、完成CREATOR的代碼,實現方法createFromParcel,將Parcel對象反序列化為你的對象

簡而言之:通過writeToParcel將你的對象映射成Parcel對象,再通過createFromParcel將Parcel對象映射成你的對象。也可以將Parcel看成是一個流,通過writeToParcel把對象寫到流裡面,在通過createFromParcel從流里讀取對象,只不過這個過程需要你來實現,因此寫的順序和讀的順序必須一致。

Parcel對象可以通過以下方法寫入或讀取byte, double, float, int, long, String這6種類型變數。

『貳』 Android Intent傳遞對象為什麼要序列化,序列化有那幾種方式

        我們都知道進行android 開發的時候,跳轉到Activity和Fragment的時候,傳遞對象是通過Intent或者bundle 進行傳遞。當這個對象沒有實現序列化的時候 當你通過Inetnt傳遞的時候會報紅,系統會提示你將這個對象實現序列化。

      1.先了解一下 什麼是序列化。通過對《Android 開發藝術探索》可以知道序列化是將一個對象轉化成可存儲可傳輸的狀態,序列化後的對象可以在網路上傳輸,也可以存儲到本地。

       2.回到我們的主題,那為什麼要序列化呢?<大致有三個原因>

               a.永久性保存對象,保存對象的位元組序列到本地文件中

               b.對象可以在網路中傳輸

               c.對象可以在IPC之間傳遞

    3.序列化有那幾種方式呢<有兩種方式> 

      android自定義對象可序列化有兩個選擇一個是Serializable和Parcelable

     4.它們之間有什麼區別?

             a.在使用內存的時候Parcelable比Serializable的性能高。

             b.Serializable在序列化的時候會產生大量的臨時變數,從而引起頻繁的GC(內存回收)。

             c.Parcelable不能使用在將對象存儲在磁碟上這種情況,因為在外界的變化下Parcelable不能很好的保證數據的持續性。

            d.實現Serializable很簡單 因為Serializable是一個空介面 所以只要在在實體類中實現這個介面即可 Parcelable就稍微復雜了一點了 

            這里有實現Parcelable 這個介面的列子  blog.csdn.net/jaycee110905/article/details/21517853  

『叄』 Android系統中Parcelable和Serializable的區別

都是序列化對象 使得可以傳遞對象
Serializable 是java自帶的序列化方式 使用簡單只需要把對象implement就可以序列化
但是此方法相對Parcelable來說性能比較低
Parcelable是android寫的一種序列化方式使用需要一些步驟
參考文檔:http://www.cnblogs.com/renqingping/archive/2012/10/25/Parcelable.html

熱點內容
安卓vivo藍牙耳機掉了一隻怎麼找 發布:2024-11-24 08:45:28 瀏覽:846
加油站腳本 發布:2024-11-24 08:44:02 瀏覽:433
絕地求生和cod哪個更吃配置 發布:2024-11-24 08:42:36 瀏覽:944
在哪裡可以下載小游戲安卓版 發布:2024-11-24 08:42:30 瀏覽:691
移動硬碟怎麼解除加密 發布:2024-11-24 08:42:30 瀏覽:492
資料庫可以存儲圖片嗎 發布:2024-11-24 08:33:55 瀏覽:592
linux私房菜基礎篇 發布:2024-11-24 08:32:36 瀏覽:327
高創腳本 發布:2024-11-24 08:32:22 瀏覽:77
java字元串byte 發布:2024-11-24 08:08:18 瀏覽:636
idc資料庫 發布:2024-11-24 08:04:58 瀏覽:81