找回密码
 立即注册
查看: 295|回复: 0

android AIDL

[复制链接]
发表于 2022-1-18 09:36 | 显示全部楼层 |阅读模式
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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2025-5-14 09:35 , Processed in 0.137412 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表