美文网首页
android AIDL

android AIDL

作者: GoLearning轻松学 | 来源:发表于2022-01-17 21:16 被阅读0次

AIDL是一套DSL,是一个配置文件,是一个编译器
DSL是:特定领域语言,protobuf、sqlite等就是DSL,还有gradle,gradle脚本。
app的打包流程:
sdk/aidl.exe-->.aidl-->java文件
aidl配置的是什么?
配置的是如何从生成java文件

有什么技术当中自己编写了aidl生成的Java文件,而不是直接利用aidl工具?
饿了么的hermes 爱奇艺的andromeda。

AIDL

Proxy,它会持有一个对象,在bindersive的时候传了一个serviceconnection过去,回调一个IBinder,这个IBinder是Stub,服务端的实现,Stub的一个代理对象BinderProxy,并不会直接把C/S的Stub直接传给C端,而是会生成一个Stub的一个代理对象(代理模式),那怎么完成BinderProxy跟Stub的通信?1.transact,序列化对象传给服务端,把序列化的的装在Parcel里面transact方法第一个参数就是方法的ID,后面是参数,调起了transact之后,方法里面就会把我们的请求通过Binder发到了服务端,然后服务掉这边就会通过JNI调用native方法,再回调到onTransact(),onTransact()之后就会switch,按客户端发送过来的执行相应的代码,然后拆包,拿到序列化的数据。


6de6f082510cd827506fd8aafed0e66.jpg

相关文章

网友评论

      本文标题:android AIDL

      本文链接:https://www.haomeiwen.com/subject/ihxhhrtx.html