? ? ? ? 我們都知道進行android 開發的時候,跳轉到Activity和Fragment的時候,傳遞對象是通過Intent或者bundle 進行傳遞。當這個對象沒有實現序列化的時候 當你通過Inetnt傳遞的時候會報紅,系統會提示你將這個對象實現序列化。
? ? ? 1.先了解一下 什么是序列化。通過對《Android 開發藝術探索》可以知道序列化是將一個對象轉化成可存儲可傳輸的狀態,序列化后的對象可以在網絡上傳輸,也可以存儲到本地。
? ? ? ?2.回到我們的主題,那為什么要序列化呢?<大致有三個原因>
? ? ? ? ? ? ? ?a.永久性保存對象,保存對象的字節序列到本地文件中
? ? ? ? ? ? ? ?b.對象可以在網絡中傳輸
? ? ? ? ? ? ? ?c.對象可以在IPC之間傳遞
? ? 3.序列化有那幾種方式呢<有兩種方式>?
? ? ? android自定義對象可序列化有兩個選擇一個是Serializable和Parcelable
? ? ?4.它們之間有什么區別?
? ? ? ? ? ? ?a.在使用內存的時候Parcelable比Serializable的性能高。
? ? ? ? ? ? ?b.Serializable在序列化的時候會產生大量的臨時變量,從而引起頻繁的GC(內存回收)。
? ? ? ? ? ? ?c.Parcelable不能使用在將對象存儲在磁盤上這種情況,因為在外界的變化下Parcelable不能很好的保證數據的持續性。
? ? ? ? ? ? d.實現Serializable很簡單 因為Serializable是一個空接口 所以只要在在實體類中實現這個接口即可 Parcelable就稍微復雜了一點了?
? ? ? ? ? ? 這里有實現Parcelable 這個接口的列子?blog.csdn.net/jaycee110905/article/details/21517853?