序列化

序列化就是可以把對象存儲在本地文件,把數據可以在網絡中傳輸,也可以在IPC機制中傳遞。android中可以使用二種序列化,實現Serializable和實現Parcelable接口。

Serializable是JAVA中提供的系列化接口,在需要實現的類中實現接口,實現它后自動會做序列化操作。這種方式的缺點是
使用的反射序列化過程比較慢,在序列化過程會創建很多臨時變量,容易觸發GC。

Parcelable 速度快是android自己提供的序列化接口。據 google 工程師的說法,這些代碼將會運行地特別快。原因之一就是我們已經清楚地知道了序列化的過程,而不需要使用反射來推斷。同時為了更快地進行序列化,對象的代碼也需要高度優化

接口的使用

public interface Parcelable {
    //內容描述接口,基本不用管
    public int describeContents();
    //寫入接口函數,打包
    public void writeToParcel(Parcel dest, int flags);
     //讀取接口,目的是要從Parcel中構造一個實現了Parcelable的類的實例處理。因為實現類在這里還是不可知的,所以需要用到模板的方式,繼承類名通過模板參數傳入。
    //為了能夠實現模板參數的傳入,這里定義Creator嵌入接口,內含兩個接口函數分別返回單個和多個繼承類實例。
    public interface Creator<T> {
           public T createFromParcel(Parcel source);
           public T[] newArray(int size);
       }

http://www.cnblogs.com/hpboy/archive/2012/07/12/2587797.html

總結
盡量用Parcelable ,因為這將會為你對象的序列化過程快10多倍,而且占用較少的資源。如果要將對象存儲本地就要用serialization,因為盡量用Parcelable是為了數據傳遞而設計的。但是大多數情況下,Serializable的龜速不會太引人注目。你想偷點懶就用它吧,不過要記得serialization是一個比較耗資源的操作,盡量少使用。

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

推薦閱讀更多精彩內容