自己实现Binder的onTransact完成跨进程通信
2023-06-23 本文已影响0人
在岁月中远行
在Android中,我们一般通过aidl来实现进程间通信,但是我们要知道aidl其实是一种工具而已,底层还是通过Binder来通信的。我们来看下代码具体:
服务端:
![](https://img.haomeiwen.com/i4471798/5dbf9d4c264b70d3.png)
可以看到onTransact有四个参数:
code:是一个整形的唯一标识,用于区分执行哪个方法,客户端会传递此参数,告诉服务端执行哪个方法;
data:客户端传递过来的参数
replay: 服务器返回回去的值
flags:标明是否有返回值,0为有 1为没有
客户端:
![](https://img.haomeiwen.com/i4471798/a409472be200f2cf.png)
![](https://img.haomeiwen.com/i4471798/8876dff83df227ff.png)