什么是序列化,為什么要進(jìn)行序列化
答:對(duì)象要進(jìn)行傳輸(如:activity 與activity間 ,網(wǎng)絡(luò)間 進(jìn)程間等等)、存儲(chǔ)到本地就必須進(jìn)行序列化 。
這種可傳輸?shù)臓顟B(tài)就是序列化。
怎么序列化???jī)煞N
1.Serializable (java 自帶)
方法:對(duì)象繼承 Serializable類即可實(shí)現(xiàn)序列化,就是這么簡(jiǎn)單,也是它最吸引我們的地方
2.Parcelable(Android專用):Parcelable方式的實(shí)現(xiàn)原理是將一個(gè)完整的對(duì)象進(jìn)行分解,用起來(lái)比較麻煩,但我們有工具,還是很簡(jiǎn)單的具體如下
方法:1.繼承 Parcelable
? ? ? ? ? 2、復(fù)寫兩個(gè)方法,分別是describeContents和writeToParcel
? ? ? ? ? 3、實(shí)例化靜態(tài)內(nèi)部對(duì)象CREATOR,實(shí)現(xiàn)接口Parcelable.Creator 。
說(shuō)不如做,直接上圖上代碼

1-1
如何選擇
選擇序列化方法的原則
1)在使用內(nèi)存的時(shí)候,Parcelable比Serializable性能高,所以推薦使用Parcelable。
2)Serializable在序列化的時(shí)候會(huì)產(chǎn)生大量的臨時(shí)變量,從而引起頻繁的GC。
3)Parcelable不能使用在要將數(shù)據(jù)存儲(chǔ)在磁盤上的情況,因?yàn)镻arcelable不能很好的保證數(shù)據(jù)的持續(xù)性在外界有變化的情況下。盡管Serializable效率低點(diǎn),但此時(shí)還是建議使用Serializable 。
4)android上應(yīng)該盡量采用Parcelable,效率至上,效率遠(yuǎn)高于Serializable
綜上所述:對(duì)于我們Android開(kāi)發(fā)者來(lái)說(shuō),最好的還是用Parcelable序列化,就是寫起來(lái)挺費(fèi)事,沒(méi)事我們是程序員自然有高端的辦法
Androidstudio 插件一鍵生成代碼,實(shí)現(xiàn)Parcelable就是這么簡(jiǎn)單,圖
setting ?-- pugins --輸入par即可出來(lái)該插件。安裝后重啟androidstudio

ok ,從此序列化就不擔(dān)心了!