1樓:網友
1、作用。serializable的作用是為了儲存物件的屬性到本地盯碧以方便資料傳輸。而parcelable的設計初衷是因為serializable效率過慢,為了在程式內不同元件間以及不同android程式間(aidl)高效的傳輸資料而設計,衝悉這些資料僅在記憶體中存在,parcelable是通過ibinder通訊的訊息的載體。
2、效率及選擇。
parcelable的效能比serializable好,在記憶體開銷方面較小,所以在記憶體間資料傳輸時推薦使用parcelable,如activity間傳輸資料,而serializable可將資料持久化方便儲存,所以在需要儲存或網路傳輸資料時選擇serializable,因為android不同版本parcelable可能不同,所以不推薦使用parcelable進行資料持久化。
3、程式設計實現。
對於serializable,類只需要實現serializable介面,並提供乙個序列化版本id(serialversionuid)即可。而parcelable則需要實現writetoparcel、describecontents函式以及靜態的creator變數,實際上就是將如何打包和解包的工作自己來定義,而序列化的這些操作完全由底層散則乎實現。
4、高階功能上。
serializable序列化不儲存靜態變數,可以使用transient關鍵字對部分欄位不進行序列化,也可以覆蓋writeobject、readobject方法以實現序列化過程自定義。
2樓:藍鳥移動開發者
android 中自定義的物件序列化的問題有兩個選擇乙個是parcelable,另外乙個是serializable。
一 序列化原因:
1.永久性儲存物件,儲存物件的位元組序列到本地檔案中;
2.通過序列化物件在網路中傳遞物件;
3.通過序列化在程序間傳遞物件。
1.在使用記憶體的時候,parcelable 類比serializable效能高,所以推薦使用parcelable類。
在序列化的時候會產生大量的臨時變數,從而引起頻繁的gc。
不能使用在要將資料儲存在磁碟上的情況,因為parcelable不能很好的保證資料的持續性在外界有變化的情況下。儘管serializable效率低點, 也不提倡用,但在這種情況下,還是建議你用serializable 。
實現:1 serializable 的實現,只需要繼承 implements serializable 即可。這只是給物件打了乙個標記,系統會自動將其序列化。
2 parcelabel 的實現,需要在類中新增乙個靜態成員變數 creator,這個變數需要繼承 介面。
public class myparcelable implements parcelable
public void writetoparcel(parcel out, int flags)
public static final
newpublic myparcelable newarray(int size)
private myparcelable(parcel in)}
Mango能否敵過Android?
只能說有機會,安卓靠數量佔領市場,以後可能會分天下,或分天下。.這要看誰賀扮來做 比如交給谷歌?.系統的開源程度 決定著可玩性diy 還有遊戲 軟體的數量 .還有粗洞手巖拍枯機製造商的出貨量。目前看來是不能的 android好用還是mango好用?智慧型機玩的主要是軟體,現在安卓和蘋果軟體最多,所以暫...
android和oppo哪好,android和oppo哪乙個好
oppo是個牌子,android是系統,中國大多數造手機的廠子都是基於andriod系統,oppo廠子也是基於andriod的 oppo手機外觀精美 時尚感十足,針對不同人群有不同的外形 功能設計,拍照方面有更多新穎的功能 奇妙的體驗,畫質清晰 影像完美,力求達到 極致影像,至美一拍 的完美效果。音...
手機開發選iPhone好還是Android好
這東西是仁者見仁 智者見智的,問別人沒用。就看您的目的是什麼,善長什麼。iphone及android是兩大陣營,各有千秋,站在哪一邊都有很大的市場。iphone的使用者可能更易接受付費程式,但賺錢的方式又不定是付費軟體,植入式廣告等都是途徑。我目前的工作,和iphone有關係,如果您最終選擇ipho...