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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Android Studio中的AIDL是Android接口定义语言的缩写,它是一种用于定义Android应用程序中的进程间通信(IPC)接口的语言。使用AIDL,您可以定义客户端和服务之间的接口,以便它们可以相互通信和交换数据。在Android应用程序中,AIDL通常用于实现跨进程通信,例如在应用程序中使用服务来执行后台任务。 ### 回答2: Android Studio AIDL(Android Interface Definition Language)是一种用于在Android应用程序中进行进程间通信(IPC)的技术。它允许不同应用程序或同一应用程序中的不同进程之间进行数据和指令的传输和共享。AIDL基于Binder机制实现,是许多Android系统服务和框架中广泛使用的IPC技术。 在Android Studio中使用AIDL,首先需要创建一个AIDL接口,该接口定义了可用于在不同进程之间进行通信的方法。一旦创建了该接口,它可以在应用程序中使用,与其他进程交换数据和指令。AIDL由Android系统自动创建和管理,不需要手动实现Binder机制。 使用AIDL的主要优点是实现非常方便,而且可以跨多个进程使用。它使得应用程序能够高效地共享数据和指令,并允许不同进程之间进行通信,从而扩展了Android应用程序的功能和交互性。 一些开发人员可能认为AIDL的学习和使用有一定的难度,但是一旦了解了AIDL的基本原理和使用方法,就能够轻松实现IPC功能,并创建更高效的Android应用程序。总之,通过使用AIDL,Android应用程序开发人员可以实现更好的应用程序设计和创新,并提高应用程序的性能和用户体验。 ### 回答3: Android Studio AIDL(Android Interface Definition Language)是一种跨进程通信的机制,用于在不同的Android组件之间进行通信AIDL类似于SOAP(Simple Object Access Protocol),RPC(Remote Procedure Call)或CORBA(Common Object Request Broker Architecture),它是一种高级的RPC机制,允许不同的应用程序使用相同的接口来进行通信AIDL的主要作用是允许一个应用程序通过一个中间层向另外的一个应用程序发送请求,并且读取响应信息。它是Android操作系统提供的默认RPC机制,由于基于Binder实现,因此具备更高的性能和更好的稳定性。 AIDL可以让你定义一组接口,用来描述应用组件之间的通信方法,包括输入和输出参数AIDL文件定义完毕后,你可以使用Android Studio自动生成AIDL接口的Java类,以便你可以跨进程访问该接口。 使用AIDL的好处是,可以将系统拆分成独立的组件,这些组件可以在不同的进程之间进行通信,从而实现了更好的资源利用和更加灵活的架构设计。 总之,Android Studio AIDL是一种强大的跨进程通信机制,有助于提高应用程序的性能和稳定性,从而让我们能够更好地设计和开发更高效的Android应用程序。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值