可以肯定的是,兩者都是支持序列化和反序列化的操作。
兩者最大的區(qū)別在于 存儲(chǔ)媒介的不同,Serializable 使用 I/O 讀寫存儲(chǔ)在硬盤上,而 Parcelable 是直接 在內(nèi)存中讀寫。很明顯,內(nèi)存的讀寫速度通常大于 IO 讀寫,所以在 Android 中傳遞數(shù)據(jù)優(yōu)先選擇 Parcelable。
Serializable 會(huì)使用反射,序列化和反序列化過程需要大量 I/O 操作, Parcelable 自已實(shí)現(xiàn)封送和解封(marshalled &unmarshalled)操作不需要用反射,數(shù)據(jù)也存放在 Native 內(nèi)存中,效率要快很多。