本文只是记录个人学习aidl的实现,如需学习请参考下面两篇教程
官方文档介绍Android 接口定义语言 (AIDL) | Android 开发者 | Android Developers
本文参考文档Android进阶——AIDL详解_android aidl_Yawn__的博客-CSDN博客
AIDL定义:Android 接口定义语言 (Android Interface Definition Language) ,定义客户端与服务均认可的编程接口,以便二者使用进程间通信 (IPC) 进行相互通信。
aidl应用场景:不同应用客户端通过IPC访问服务,希望在服务进行多线程处理;
Binder应用场景:无需跨不同应用执行并发 IPC;
Messager应用场景:执行 IPC,但不需要处理多线程;
创建 .aidl 文件
创建.aidl文件,创建失败解决方法解决androidstudio2022.2.1新建不了aidl文件_android_lingz的博客-CSDN博客
AIDL 支持下列数据类型:
- Java 编程语言中的所有原语类型(如
int
、long
、char
、boolean
等)String,CharSequence,List,Map
2. 实现接口
2.1 Default
public static class Default implements com.example.testkotlin.IMyAidlInterface
Default重写了basicTypes 和asBinder方法
2.2 Stub
public static abstract class Stub extends android.os.Binder implements com.example.testkotlin.IMyAidlInterface {
Stub 实现了本地接口且继承了 Binder 对象 ,在生成 Stub 对象的时候会调用 asInterface 方法