本次学习一个听起来很牛逼的知识,绝对能提高你的逼格
每个应用程序都有一个进程
跨进程是指在两个应用程序之间通信
A应用程序的Activity与B应用程序的Service绑定,实现两个应用程序之间的通信
什么是AIDL?
AIDL表示“android接口定义语言”:Android Interface Definition Language
进程间通信的方式
使用AIDL定义的接口,会被开发工具生成为可实现远程访问的接口。
进程间通信模式是组件间的“高级”应用方式,与一般组件间通信的区别在于:接口需要使用AIDL定义。
由于存在2个应用程序通信,因此,提供服务的应用程序通常被称为“服务端”在服务端创建aidl接口。调用它的接口的
方法的应用程序被称为“客户端”
关于AIDL接口
使用java中创建接口的方式即可创建AIDL接口,区别在于:
AIDL的接口的源文件扩展名是.aidl,而一般接口的源文件扩展名为.java
AIDL的接口不允许使用public或任何访问权限修饰符去修饰,它默认即被修饰为public,权限修饰符已被定死且被隐式加入了,不需要任何修饰
在创建可AIDL接口后,开发工具会在gen文件夹下自动生成匹配的java源文件
在开发工具生成的AIDL接口的JAVA源文件中,定义了名为Stub的内部类,继承了android.os.Binder,并实现了AIDL的接口
因此开发人员在创建Service的IBinder的实现类时仅需继承该Stub类即可