AIDL的复杂参数的传递和完整使用过程(AndroidStudio)

本文详细记录了使用AIDL在Android Studio中进行远程服务绑定及传递自定义复杂参数(如Pet和Person类)的过程。重点讨论了AIDL包与Java包的对应、自定义类的序列化、服务端与客户端AIDL文件的创建、数据类型的传递等关键点,并提到了在Android 5.0后显式绑定服务的方法。
摘要由CSDN通过智能技术生成

昨天开始认真研究了一下AIDL,使用AIDL绑定远程服务并且传递复杂自定义的参数,在使用过程中碰到了一些问题,网上的技术贴有很多不全面的,另外有些细节部分根本不会提到,然后就查找了很多技术贴,自己动手完整地实现了功能并且把出现的问题解决,这篇文章记录下来细节和要点,供自己忘记时温习。我们使用的自定义类为Pet和Person。

下面只指出细节和关键点:

1.服务端AIDL下的包和java下的包一一对应,如果你想把新建的Person类,Pet类放在一个包javabean中,那么在AIDL对应的包下也需要建一个javabean的包再建Person.aidl和Dog.aidl


2.Person类和Dog类的序列化,也就是实现Parcelable接口这里是大写,这里特别注意最后一个

readFromParcel方法,你用AndroidStudio自动的模板是没有这个方法的,所以是自己添加上去的。这里是一个坑,我们在IMyAidlInterface.aidl文件里面的代码如下:
package com.mike.servicepro;
import com.mike.servicepro.javabean.Person;
import com.mike.servicepro.javabean.Dog;

interface IMyAidlInterface {
   
    String  intInfo(in Person  person);//in表明是由客户端到服务端
    String   outInfo(out Person person);//out表明是有服务端到客户端
    String  inoutInfo(
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值