码迷,mamicode.com
首页 > 移动开发 > 详细

Android Studio中如何创建AIDL

时间:2016-04-04 16:29:41      阅读:280      评论:0      收藏:0      [点我收藏+]

标签:

实现客户端添加Book,Service接收并打印出书籍信息

一、创建Book类

1.创建文件夹(本文命名为aidl)

技术分享

2.创建Book类并继承Parcelable接口(原因:AIDL只能传送继承Parcelable接口的类)

详见:第二章——Parcelable接口的使用(跨进程,Intent传输)

二.创建AIDL文件夹与Book.aidl

用AIDL File填写名字的时候先随便填写(因为如果直接填Book为名字时候会报错,只有先创建完之后再RENAME才不会报错)

技术分享

之后变成

技术分享

为什么要有Book.aidl类,因为只有将类在aidl中声明时候,AIDL才能调用Book类,接下来为如何声明

技术分享

所以说要让AIDL能够传送自定义类需要 ①继承Parcelable接口 ②创建同名.aidl文件声明自己。

三、创建IBookManager.aidl(作用:设置让客户端允许调用的接口)

技术分享

四、分析Binder的运行原理

注:Stub对象可以理解为Binder类

1.系统会自动生成IBookManger.java文件在

技术分享

分析其属性和方法
DESCRIPTOR:Binder的唯一表标识,"一般用类名表示"

asInterface(IBinder obj):将服务端的Binder对象转成客户端的所需的AIDL对象。

①:若客户端与服务端在同一进程则返回服务端的Stub本身。

②:若客户端与服务端在不同进程则返回的是Stub.proxy对象。

asBinder():返回当前的Binder对象

onTransact():当客户端发起跨进程请求时,会调用此方法,返回Stub.proxy

Proxy#getBookList():我们刚才创造的接口。

运行原理:

 

技术分享

 

好了,运行原理和创建方式就到这里。

Android Studio中如何创建AIDL

标签:

原文地址:http://www.cnblogs.com/rookiechen/p/5352053.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!