Android Studio 创建AIDL以及Binder 原理

复习Android 开发艺术探索 第2章 IPC机制 Binder原理 的时候发现书中这块代码是在Eclipse环境下编写的,此处换成Android Studio环境同时把要点梳理一下。


一、创建AIDL文件

首先创建单独的包aidl

其下创建:

Book.java ,这个没有什么好说的,书上有源码,概况就是:实现 parcelable接口。定义自己的成员变量,实现writeToParcel(Parcel out ,int flags) describeContens()方法,同时创建 CREATOR;


Book.aidl:

继续在aidl包下右键创建Book.aidl,这时会发现命名重复,创建不了,这时可以随便起一个名字,之后rename。

创建完成之后会发现 aidl文件在Android studio下会被自动移动到单独的一个aidl包下。如图:



IBookManager.aidl 也采用同样的方式创建。




书中eclipse 环境下这里Build之后 会在gen目录下生成对应的IBookManager.java,而Android Studio 则在generated-source下 本质上应该是一样的。



二、Binder原理

1.客户端发起远程请求,同时挂起当前线程(不能在UI线程调用的原因)。

2.继承stub的Binder将参数写入data,调用Transact(注意和服务端的区别)。

3.调用服务端的onTransact()(通过线程池实现,所以要注意同步问题),将结果返回到Binder。

4.返回数据给客户端,同时将客户端唤醒。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值