序列化Serializable和Parcelable的區(qū)別詳解

什么是序列化,為什么要進(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)心了!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容