什么是序列化,為什么要進行序列化
答:對象要進行傳輸(如:activity 與activity間 ,網絡間 進程間等等)、存儲到本地就必須進行序列化 。
這種可傳輸的狀態就是序列化。
怎么序列化??兩種
1.Serializable (java 自帶)
方法:對象繼承 Serializable類即可實現序列化,就是這么簡單,也是它最吸引我們的地方
2.Parcelable(Android專用):Parcelable方式的實現原理是將一個完整的對象進行分解,用起來比較麻煩,但我們有工具,還是很簡單的具體如下
方法:1.繼承 Parcelable
2、復寫兩個方法,分別是describeContents和writeToParcel
3、實例化靜態內部對象CREATOR,實現接口Parcelable.Creator 。
說不如做,直接上圖上代碼
1-1
如何選擇
選擇序列化方法的原則
1)在使用內存的時候,Parcelable比Serializable性能高,所以推薦使用Parcelable。
2)Serializable在序列化的時候會產生大量的臨時變量,從而引起頻繁的GC。
3)Parcelable不能使用在要將數據存儲在磁盤上的情況,因為Parcelable不能很好的保證數據的持續性在外界有變化的情況下。盡管Serializable效率低點,但此時還是建議使用Serializable 。
4)android上應該盡量采用Parcelable,效率至上,效率遠高於Serializable
綜上所述:對於我們Android開發者來說,最好的還是用Parcelable序列化,就是寫起來挺費事,沒事我們是程序員自然有高端的辦法
Androidstudio 插件一鍵生成代碼,實現Parcelable就是這么簡單,圖
setting -- pugins --輸入par即可出來該插件。安裝后重啟androidstudio
ok ,從此序列化就不擔心了!
作者:ifjgm
鏈接:https://www.jianshu.com/p/1203ba41b0ac
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
