一、将第一个app,当做服务端
(一)创建Fruit.java文件,
在com.example.settinglib包下
实现Parcelable ,只有序列化的数据,才能在进程间传递
public class Fruit implements Parcelable {
private String mName ;
private int mNumber;
public Fruit(Parcel source) {
mName = source.readString();
mNumber = source.readInt();
}
public String getmName() {
return mName;
}
public void setmName(String mName) {
this.mName = mName;
}
public int getmNumber() {
return mNumber;
}
public void setmNumber(int mNumber) {
this.mNumber = mNumber;
}
public Fruit(String name, int number) {
this.mName = name;
this.mNumber = number;
}
public static final Creator<Fruit> CREATOR = new Creator<Fruit>() {
@Override
public Fruit createFromParcel(Parcel in) {
return new Fruit(in);
}
@Override
public Fruit[] newArray(int size) {
return new Fruit[size];
}
};
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel parcel, int i) {
parcel.writeString(mName);
parcel.writeInt(mNumber);
}
@Override
public String toString() {
return String.format("[mName:%s, mNumber:%s]", mName, mNumber);
}
}
(二)创建Fruit.aidl文件和IFruitManger.aidl文件
1,在main文件夹下,创建aidl文件。并在aidl文件夹下,创建Fruit.aidl、IFruitManger.aidl、INewFruitAddListener.aidl, 他们的路径和Fruit.java 文件相同
2,aidl文件都尽量放在一个路径下,这样便于拷贝到客户端app使用。
客户端拷贝过去的aidl文件和实现了Parcelable的java文件,其路径要和服务端的一模一样。否则会报错。(无法反序列化)
1,Fruit.aidl
表示实现了parcelable序列化
package com.example.settinglib;
parcelable Fruit;
2,IFruitManger.aidl
import com.example.settinglib.Fruit; 这行代码是自己手动输入的
import com.example.settinglib.INewFruitAddListener; 这行代码是自己手动输