安卓的Parcel机制是不同于Java的serialize机制的一种序列化机制,但是功能均是实现对象序列化。Parcel是一种轻量级对象序列化和反序列化机制,而且非常高效。Parcel可以在Activity之间传递复杂的对象。主要包含了几个函数:
1. Public void writeToParcel(Parcel dest, int flags){ dest.writeInt(color); }
2. Public int describeContents(){ return 0; }
创建Parcel对象:
public static final Parcelable.Creator CREATOR =
new Parcelable.Creator(){
public MyColor createFromParcel(Parcel in){
return new MyColor(in);
}
public MyColor[] newArray(int size){
return new MyColor[size];
}
};
安卓中进程间通信IPC也是用了Parcel这种交互机制。Parcel数据结构:
Parcel |
---|
mError: int |
*mData: char |
mDataSize: int |
mDataCapacity: int |
mDataPos: int |
*mObjects: int |
mObjectsSize: int |
mObjectsCapacity: int |
mNextObjectHint: int |
mFdsKnown: bool |
mHasFds: bool |
mAllowFds: bool |
*mOwnerCookie: void |