韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha
安卓接口定义语言
例如 a进程 要与 b进程中的 服务 实现通信。
可以在 a工程 中, 创建一个 aidl文件,在里面定义接口,然后 生成gen 目录下 会自动生成 一个 .java文件。
然后 定义自己的 服务类, 在这个服务类 里 ,定义一个内部类,继承 这个 xxx.stub 这个内部类 xxx是根据 adil文件文件名。 这个stub内部类 实际就是 之前 生成的.java文件中所包含的一个内部类。
在 我们定义的这个内部类中 在它的 在绑定时候 方法 中 返回 这个内部类 对象, 系统会自动将这个对象 封装成 接口绑定器IBinder对象 ,传递给它的调用者。
然后 在 清单文件中 配置 服务类,
在这个服务类 下 添加 动作action 安卓:name=“xxxx” ,xxxx就是 adil的包路径加它的文件名 ,指明了这个名字, b进程 就能找到它 ,实现通信。
在b工程中: 把a工程中的 自动生成的.java文件 复制到 b工程里, 在绑定服务方法中 将 上面指明的那个名字 作为 意图的 动作 参数。
b工程中 要创建相应的包,保证 自动生成的.java文件的 包名 正确。