Android开发艺术探索读书笔记之AIDL

什么是AIDL?

AIDL是 Android Interface definition language的缩写,一看就明白,它是一种android内部进程通信接口的描述语言,通过它我们可以定义进程间的通信接口

AIDL的作用

AIDL可以实现跨进程的方法调用。定义进程通信接口供服务端和客户端调用。

AIDL支持的参数类型

在AIDL文件中并不是所有数据类型都可以使用。只支持下列数据类型

  • 基本数据类型(int, long, char, boolean, double等);
  • String和CharSequeence;
  • List:只支持ArrayList,且List里的元素必须在aidl中被定义;
  • Map:只支持HashMap,里面每个元素必须被AIDL支持,包括Key和Value;
  • Parcelable:所有实现了Parcelable接口的对象;
  • AIDL:所有AIDL接口本身可以在AIDL文件中使用;
    自定义Parcelable对象和AIDL对象必须手动import。
    如果AIDL文件用到了自定义Parcelable对象,必须新建一个同名的AIDL文件

AIDL的调用过程

默认情况下AIDL的调用过程是同步的,所以不能直接进行比较耗时的操作,否则容易导致客户端ANR。如果需要进行异步操作,在服务端不需要另起线程,但是在客户端需要另起线程访问远程方法,再通过Handler通知到UI线程即可!

你可能感兴趣的:(Android开发艺术探索读书笔记之AIDL)