今天查询AIDL知识,发现一篇博客写的很好,博客原文见http://blog.youkuaiyun.com/android_tutor/article/details/6427680。
但是由于本人知识浅薄,对于AIDL相关联的知识了解过少,故在学习本篇博客的同时,也查询了许多资料,特整理如下,以便记录和分享。
一、 Parcelable接口有两个抽象方法:
int describeContents()
void writeToParcel(Parcel parcel, int flags)
实现次接口的类必须实现这两个方法,这就是为什么Book类中有这两个方法。
二、 实现Parcelable接口的类,必须包含一个静态变量CREATOR,此变量是Parcelable.Creator接口的一个实现。此变量是用来从Parcel生成一个你自己的Parcelable类的实例。
Parcelable.Creator接口有两个抽象方法:
T createFromParcel(Parcel source)
T[] newArray(int size)
根据注释,createFromParcel是用来创建Parcelable类实例的方法,因此,此函数的一般写法为:return new Book(source);
这也就要求了Book类必须有一个带有Parcel参数的构造函数:Book(Parcel parcel);
newArray函数用来一个Parcelable类数组,所以一般实现是:return new Book[size];
三、 由IAIDLServerService.aidl生成的