1.實作
Parcelable的實作:
writeToParcel(Parcel dest, int f1ags)
describeContents()
Parcelable.Creator介面的類
Serializable的實作:
實作Serializable介面
serialVersionUID
2.原理
Parcelable自己實作了序列化和反序列化程序,Serializable是基于反射的操作,生成大量的臨時物件,并且伴隨著大量的IO操作,
3.效率和使用場景不同
Parcelable是位于記憶體上,本質是是在記憶體上通過malloc分配的,傳輸效率高,速度是Serializable的10倍,
Serializable是在硬碟上操作的,速遞慢,但是硬碟的持久化更穩定,適合長期的持久化,比如需要保存或網路傳輸資料時選擇Serializable,
最后
Binder 的緩沖區是有大小限制的大約是2M,而一個行程默認有 16 個 Binder 執行緒,所以一個執行緒能占用的緩沖區比較小,容易造成這類The Binder transaction failed because it was too large 例外,
參考:
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/122901.html
標籤:其他
上一篇:iPhone 12 或10月13日發布;微信支付正計劃加碼存款市場;Swift正式登陸Win 10 | 極客頭條
