Android Studio中如何创建AIDL

实现客户端添加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():我们刚才创造的接口。

运行原理:

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

时间: 2024-10-29 19:05:35

Android Studio中如何创建AIDL的相关文章

android studio中使用svn

一. Android Studio配置SVN Android Studio关联配置SVN很简单,在Settings里面,找到Version Control->Subversion:在这个页面的控制面板中的General中将Use command line client打勾勾选上,然后浏览本地的SVN安装目录,选到"svn.exe"即可: 在Use command line client下面还有一个Use system default Subversion configuratio

android studio 中的编码问题

在 Android studio 中直接创建项目和导入其他项目都会有一个文件编码设定的问题,在 android studio (version 1.2.0)中设置文件的编码,只需要两步: 1.打开Setting->Editor->File Encoding 进行编码设置 2.打开module的 build.gradle 文件修改编译器使用的编码 1.打开Setting->Editor->File Encoding 进行编码设置 这里面主要有4块 IDE Encoding:ide 的

Android studio 中创建AIDL Service

  1.概述  AIDL在android系统中的作用 AIDL,Android Interface definition language的缩写,它是一种android内部进程通信接口的描述语言,通过它我们可以定义进程间的通信接口.最近看了下AIDL在Android系统中的用法,在网上看到很多初学的朋友不太明白AIDL的实际作用,android提供了很多进程间通信的组件,像action.broadcast.contentprovide都可以实现进程间的通信,为什么还要用AIDL这个东西呢?我在a

Android IPC机制(三)在Android Studio中使用AIDL实现跨进程方法调用

在上一篇文章Android IPC机制(二)用Messenger进行进程间通信中我们介绍了使用Messenger来进行进程间通信的方法,但是我们能发现Messenger是以串行的方式来处理客户端发来的信息,如果有大量的消息发到服务端,服务端仍然一个一个的处理再响应客户端显然是不合适的.另外,Messenger用来进程间进行数据传递但是却不能满足跨进程的方法调用,接下来我们来使用AIDL来实现跨进程方法调用,此前我们都是用Eclipse来实现的,这次我们看看在Android Studio中使用AI

在Android Studio中创建项目和模拟器

北京电子科技学院 实      验      报      告 课程:移动平台应用开发实践  班级:201592  姓名:杨凤  学号:20159213 成绩:___________  指导老师:娄嘉鹏   实验日期 :2015.11.1 实验名称:           在Android Studio中创建项目和模拟器 实验内容:       1.在Android Studio中创建项目 2.创建并启动Android模拟器 一.实验简介 熟悉Android的开发环境.一些基本的操作技巧以及调试技

Android实验一(在Android Studio中创建项目和模拟器)

北京电子科技学院(BESTI) 实     验    报     告 课程:移动平台开发         班级:1592 姓名:苏泽楠 学号:20159207 成绩:             指导教师:娄嘉鹏       实验日期:2015.10.31 实验密级:         预习程度:             实验时间:15:30-16:30 仪器组次:          必修/选修:选修        实验序号: 实验名称:在Android Studio中创建项目和模拟器 实验仪器: 名

Android Studio 使用问题---导入aidl

使用了一段时间Android Studio发现慢慢喜欢上用它写代码了,界面比ADT好看太多了,而且我比较懒,AS的拥有和VS2013差不多的提醒功能真的不错,哈哈这个事题外话了. 最近遇到个问题:  改用Android Studio后aidl文件不能按照传统ADT的方式在src目录下建包引入文件,这样操作在类里无法导包找不到class文件. 多处询问未果,最后才发现AS初次导入Eclipse项目时的已经再import-summary.txt中提醒了(囧~ 项目迁移后文件夹变动如下: Androi

在Android studio中如何把项目放到远程git或从远程git得到项目:

主要记录了在Android studio 中如何把项目放到远程git或从远程得到项目: 因为它已经为我们提供了git插件,所有我们部署一下就可以直接使用了.方法如下: 1.准备:先下载window上的git(在不同的系统下载不同的git),然后安装. 2.在Android studio 里点击:File->Settings(如图1),然后进入Version Control->Git;(如图二)然后点击Test(出现图三表示成功). 图1 图二 图三 3.初始化git项目(git init),操

在Android Studio 中正确使用adil ”绝对经典“

今天调用远程服务中遇到了一个问题,哎,调了2个小时,后来终于解决,总结来看还是对新的Android Studio 不够熟悉.那么....就可以睡觉啦!!! 在Android Studio中使用进程通信机制adil时一定要注意: 1  Android Studio提供了ADIL的创建规则,我们尽量去遵循这个规则吧,别总对Eclipse念念不忘啦: 2  在按照新建ADIL文件的步骤创建完成文件之后,***一定要在adil目录下级的包名目录中右键run一下,这样工具才会编译并在build中的gene