android aidl案例,Android——使用AIDL实现进程间传递对象案例

本文详细介绍了如何使用 Android AIDL 实现自定义 User 对象在不同进程间的传递。通过创建可序列化的 User 类,声明 parcelable,并在 AIDL 中定义接口,实现了服务端发送和接收 User 对象的功能。案例代码展示了完整的实现过程,包括服务端的接口定义、服务实现,以及客户端的服务绑定、消息发送和接收。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 前言

在 Android——使用AIDL实现进程间通讯简单案例 中介绍了使用 AIDL 在进程间传递字符串,对于8种基本数据类型( byte、short、int、long、float、double、boolean、char )和 CharSequence(包含 String )、List、Map,用法同理。

需要注意:List 和 Map 中的所有元素必须是 AIDL 支持的类型,List 支持泛型,Map 不支持泛型。

本文将介绍使用 AIDL 实现自定义 User 对象间的传递,User 包含 name(String)和 age(int)2个属性。

本文全部代码见→使用AIDL实现进程间传递对象案例

2 项目结构

f10c8e4e127d19a7667d016ee5a9661b.png

注意事项:

User.java 和 User.aidl 的包名必须一致

aidl_C 和 aidl_S 下的 User.java 文件内容必须一致

aidl_C 和 aidl_S 下的 aidl 文件及其包名必须一致

3 服务端 aidl_s 代码

(1)传输类定义

User.java

package commu;

import android.os.Parcel;

import android.os.Parcelable;

public class User implements Parcelable{

private String name;

private int age;

public User(String name, int age) {

this.name = name;

this.age = age;

}

protected User(Parcel in) {

name = in.readString();

age = in.readInt();

}

public static final CreatorCREATOR = new Creator() {

@Override

public User createFromParcel(Parcel in) {

return new User(in);

}

@Override

public User[] newArray(int size) {

return new User[size];

}

};

@Override

public int describeContents() {

return 0;

}

@Override

public void writeToParcel(Parcel dest, int flags) {

dest.writeString(name);

dest.writeInt(age);

}

public String getName() {

return name;

}

public int getA

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值