在Android中的IPC方式中有一种方式为AIDL,当我们在使用AIDL时需要根据不同的数据传输场景去选择不同的修饰符,只要涉及到in、out和inout修饰符。
注:这个知识点在面试CVTE时遇到了,当时只说了in和out修饰符,特此在这里总结一下。
一、为什么会出现这三个修饰符
所有的非基本数据类型的参数在以AIDL方式传输时都需要使用定向Tag来指定数据流通的方式。
二、三个修饰符的区别
- 基本数据类型的修饰符都是in
- in —– 只能在客户端设置值,在服务端获取值,反之不可以。
- out —– 只能在服务端设置值,客户端获得服务端设置的值,如果客户端在传值给服务端时设置了初始值,服务端无法得到该值。
- inout —— 客户端和服务端之间形成双向的数据通路,客户端设置的值服务端可以获得,反之,服务端设置的值客户端也可以获得。
以上就是一点小小的总结,希望可以帮助到需要的小伙伴。