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线程即可!

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容