aidl

不同项目用aidl时要注意这四点:

1、service的启动方式:不能用隐式启动,会报错。应该这样:
这里写图片描述

2、实体类要放在java包下,而不能放在aidl包下,不然会报找不到这个类的错误。(其实同时aidl文件也不能放在java包下面,否则系统不能自动帮助我们生成java文件)
这里写图片描述

3、客户端和服务端的“和aidl相关的文件”的包名要一致,可以是任意包名。
这里写图片描述
比如这里:3个aidl文件和1个实体类,它们在客户端和服务端的包名都是“com.ryg.ppp”

4、服务端的进程要先开启,否则客户端绑定不了服务端的service。


另:
aidl生成的java类在这里
这里写图片描述
如果把aidl文件给删除了,那么生成的java类也就消失了。而且生成的java类是不能够修改的,即使你修改了,系统也会把它改回去。


总结:

1、其实“aidl生成的java类和与它们相关的实体类”就相当于第三方库,客户端、服务端各放一份,这样客户端和服务端调用的就是同一个东西。所以只要这些类的包名一致就可以了。可以和客户端或者服务端的项目名不同。

2、aidl只是生成binder类的工具,我们不用aidl,直接自己写binder类,并把自己写的这些类放在一个包里,客户端和服务端各放一份,就可以实现进程间通信,这也是aidl的本质。
这里写图片描述

3、binder的java类大致如下:
这里写图片描述

这里写图片描述

IBookManager:用来定义业务接口。并实现IInterface接口,让它可以在binder中传输
IInterface:所有在binder中传输的接口都需要继承IInterface接口
Stub最重要的。继承Binder,让它可以实现进程间通信。同时实现IBookMangager,让它可以拥有业务方法。
Proxy:Stub的内部类。内部封装的就是一个Stub对象。

生成的binder类java文件一定要结合艺术探索多看,理解透里面的方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值