Android使用AIDL通讯笔记

    xiaoxiao2024-12-02  59

    这块已经有很多大神写过了,不过自己一直也不太了解,记录下防止自己忘了. AIDL主要用在进程间通讯,内部使用Binder机制传输

    创建aidl接口

    studio里面创建一个接口很简单,只要选择新建->aidl文件,就会自动生成一个范例文件,只要在这里面改改就好了. aidl接口可以接受一般的基本类型还有他们的list,map,需要传输其他类的话需要在其中声明并实现Parcelable接口.

    parcelable BeanParcelable; ---------------------------- import com.example.aidltest.BeanParcelable; interface IMyAidlInterface { void basicTypes(in BeanParcelable bean); }

    这里一定要记得加in out.运行之后,会自动生成一个同名的java文件. 这也能看出来是在binder的线程里运行的

    in out 参数

    in只输入,无法返回数据out只返回,无法发送数据inout 两者皆可 out只传了个全为空的数组

    生成的类

    主要生成了Stub,Proxy两个类实现了传输的方法. 客户端调用Proxy,Sutb实现了onTransact方法,服务端继承Stub实现接口.

    最新回复(0)