1.server端
Aidl文件创建,创建后rebuild项目会生成对应的java文件如下:
定义AIDLBean文件
// Person.aidl
package com.aiyuba.serverclient;
// Declare any non-default types here with import statements
import com.aiyuba.serverclient.Person;
parcelable Person;
注意 需手动添加
import com.aiyuba.serverclient.Person;
// PersonAidl.aidl
package com.aiyuba.serverclient;
import com.aiyuba.serverclient.Person;
// Declare any non-default types here with import statements
interface PersonAidl {
void addPerson(in Person person);
List<Person> getPersonList();
}
package com.aiyuba.serverclient;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.os.RemoteException;
import java.util.ArrayList;
import java.util.List;
public class PersonService extends Service {
private List<Person> personList = new ArrayList<>();;
public PersonService() {
}
private IBinder iBinder = new PersonAidl.Stub() {
@Override
public void addPerson(Person person) throws RemoteException {
personList.add(person);
}
@Override
public List<Person> getPersonList() throws RemoteException {
return personList;
}
};
@Override
public IBinder onBind(Intent intent) {
return iBinder;
}
}
Parcelable与Serializable序列化对比
1.在使用内存的时候,Parcelable比Serializable性能高,所以推荐使用Parcelable。
package com.aiyuba.serverclient;
import android.os.Parcel;
import android.os.Parcelable;
/**
* Created by maoyujiao on 2020/4/22.
*/
public class Person implements Parcelable {
private String name;
private int age;
protected Person(Parcel in) {
name = in.readString();
age = in.readInt();
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(name);
dest.writeInt(age);
}
@Override
public int describeContents() {