进程需要将其对象分解成操作系统能够识别的原语,并将对象编组成跨越边界的对象。
编写执行这一编组操作的代码是一项繁琐的工作,因此 Android 会使用 AIDL 来处理。
通过这种机制,我们只需要写好 aidl 接口文件,编译时系统会帮我们生成 Binder 接口。
简而言之,我们需要打包我们实体类的同时写一个aidl接口文件。
官方文档定义:
使用AIDL时会对内存进行读取,所以经常使用会造成程序变慢,所以不要过多使用
当只使用IPC,不用多线程并使用多个应用程序时,只使用binder就行了
而只有用IPC,不用多线程时,只使用message就好了
AIDL有必要用于使用IPC,处理多线程并且在多个应用程序间共享程序
-
JAVA的默认基本数据类型(String,int。。。 short除外)
-
List和Map
-
其它的AIDL接口
-
实现Parcelable的实体类
eworld/article/details/80830269)使用AIDL步骤
- 创建aidl
①创建实体类并实现Parcelable接口
②新建aidl文件,在其下面创建aidl的映射文件和接口文件
③通过build后生成binder的java文件
- 服务端
①创建service,在其中创建上面生成binder的实例