15 Binder通信之AIDL的原理

Binder通信之AIDL的原理

一、前言

上一节写了AIDL的示例,实现了两个应用见的通信,这一节来具体看看AIDL是如何实现的?AIDL的原理是什么?

二、为什么要用AIDL?

既然有了Binder,我们还要有AIDL呢?

上一节的AIDL示例中,我们编译后,在build/generated/aidl_source_output_dir/debug/out下会生成IMyAidlService.java文件,打开查看你会发现跟framework中Binder写的非常类似,AIDL简化了Binder的代码逻辑,把跟service交互的逻辑通过工具编译来生成。

三、AIDL通信流程

Client 端和Server端使用同一个AIDL,连包名都需要保持一致。

Server端继承自Service,重载一个onBind(),返回服务实体Stub(),mStub其实就是一个IBinder

IMyService.Stub mStub = new IMyService.Stub

猜你喜欢

转载自blog.csdn.net/Johnny2004/article/details/130857828
15
今日推荐