首页 > 程序开发 > 移动开发 > 其他 >

AIDL与IPC学习总结

2017-04-11

AIDL与IPC学习总结,(3)、在Java文件中, 实现AIDL中定义的接口 编译器会根据AIDL接口, 产生一个JAVA接口。这个接口有一个名为Stub的内部抽象类,它继承扩展了接口,并实现了远程调用需要的几个方法。

一、什么是AIDL

AIDL
定义 Android内部进程通信接口的描述语言
作用 定义进程间的通信接口
全称 Android Interface definition language
IPC
定义 内部进程通信
全称 interprocess communication

二、AIDL详解

AIDL详解

AIDL语法

具体实现步骤如下:
(1)、创建AIDL文件,在里面定义接口, 该接口定义了可供客户端访问的方法和属性。
(2)、编译AIDL文件

Ant Eclipse plugin
可能需要手动 根据aidl文件,自动生产java文件并编译, 不需要人为介入

(3)、在Java文件中, 实现AIDL中定义的接口.编译器会根据AIDL接口, 产生一个JAVA接口。这个接口有一个名为Stub的内部抽象类,它继承扩展了接口,并实现了远程调用需要的几个方法。接下来就需要自己去实现自定义的几个接口了.

(4)、向客户端提供接口ITaskBinder,如果写的是Service,扩展该Service,并重载onBind ()方法来返回一个实现上述接口的类的实例。

(5)、在服务器端,回调客户端的函数.前提是当客户端获取的IBinder接口时,要去注册回调函数, 只有这样, 服务器端才知道该调用那些函数。

三、谈谈IPC机制

IPC
全称 内部进程通信
定义 共享”命名管道”的资源
目的 让Activity和Service间,可随时进行交互
适用范围 只适用于Activity和Service之间的通信
类似于 远程方法调用~~~~C/S模式的访问
与AIDL的关系 可通过定义AIDL接口文件,来定义IPC接口。
Servier端 实现IPC接口
Client端 调用IPC接口本地代理

相关文章
最新文章
热点推荐