AIDL与IPC学习总结
2017-04-11
AIDL与IPC学习总结,(3)、在Java文件中, 实现AIDL中定义的接口 编译器会根据AIDL接口, 产生一个JAVA接口。这个接口有一个名为Stub的内部抽象类,它继承扩展了接口,并实现了远程调用需要的几个方法。
一、什么是AIDL
AIDL | |
---|---|
定义 | Android内部进程通信接口的描述语言 |
作用 | 定义进程间的通信接口 |
全称 | Android Interface definition language |
IPC | |
---|---|
定义 | 内部进程通信 |
全称 | interprocess communication |
二、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接口本地代理 |
相关文章
最新文章
热点推荐