欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

3.AIDL与Proxy-Stub设计模式

时间:2023-06-11

IPC的Proxy-Stub设计模式

1、复习IBinder接口2、IBinder接口的一般用途

2.1 myActivity代码实战2.2 myBinder代码实战 3、包装IBinder而接口(如何写Proxy及Stub类)4、谁来写Proxy类和Stub类呢?5、AIDL工具(谁来写Proxy及Stub类)

类别模板详解AIDL IPC的Proxy-Stub设计模式 1、复习IBinder接口

单层框架图:

两层框架:

对于App而言,只能看到上层的op接口,但是看不到fun()接口了。

改变了t的实现接口:

App还是需要直接访问interface接口,并没有完全的隔离开来。

改进的版本:

建立了中间的曹操类。

2、IBinder接口的一般用途

对于上述的代码中,开发者需要编写额外的代码,加重了开发者的负担。

本单元没有用“proxy-stub” -> 下单元采用“proxy-stub” -> AIDL

从Binder thread pool中选择一个线程执行service中的代码。

2.1 myActivity代码实战

在 myActivity 中创建一个 BroadcastReceiver

2.2 myBinder代码实战

下面的代码实在binder thread中执行的。

step1: Activity -> Service: oncreate()
step2: Service -> new myBinder and create a new thread
step3: myActivity -> myBinder : ontransact()

3、包装IBinder而接口(如何写Proxy及Stub类) 4、谁来写Proxy类和Stub类呢? 5、AIDL工具(谁来写Proxy及Stub类) 类别模板 详解AIDL

实际采用的适配器的模式,将IBinder接口转换成用户自己定义的接口。

Proxy主要承担了编码的作用,同时还需要实现客户自定义的接口。

Stub主要承担了解码的作用,同时还需要实现客户自定义的接口。

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。