AIDL的作用与调用过程

2018-05-19  本文已影响0人  AndroidHint

1、AIDL的作用

AIDL是Android Interface Definition Language,意思就是Android接口定义语言。首先它是一种语言,它被设计出来的目的就是为了实现进程间的通信
通过使用AIDL,可以帮我们生成进程间通信时需要用到的类和接口方法。
当然,我们也可以不借助AIDL,而是自己实现这些类和方法,但是借助AIDL会让这个过程变得简单方便。

2、AIDL支持的参数类型

上面提到的AIDL是一种语言,那么它肯定有属于自己的一套语法:
首先是文件类型,AIDL文件的后缀为.aidl。
其次是支持的数据类型,AIDL默认支持的一些数据类型,在使用这些数据类型时是不需要导包的(即不需要使用import ***),除了这些默认支持的数据类型外,使用其他类型则需要导包,即使目标文件与当前正在编写的 .aidl 文件在同一个包下。
AIDL默认支持的数据类型是:

AIDL文件主要分为两种类型,一种是定义parcelable对象的,例如:

// Book.aidl,这里是引入了一个序列化对象 Book 供其他的AIDL文件使用,其中Book.aidl与Book.java的包名应该要是一致的。
package com.example.runningh.mydemo.binder;
import com.example.runningh.mydemo.binder.Book;

//parcelable是小写
parcelable Book;

上面将Book对象定义成了parcelable对象,这样才能成为AIDL文件支持的对象。

另一种是用来定义方法接口的,例如:

// BookManager.aidl
package com.example.runningh.mydemo.binder;
//导入所需要使用的非默认支持数据类型的包
import com.example.runningh.mydemo.binder.Book;

interface BookManager {

    //注意返回值前是没有修饰符的
    List<Book> getBooks();
    Book getBook();
    int getBookCount();

    void setBookPrice(in Book book , int price)
    void setBookName(in Book book , String name)
    void addBook(in Book book)
}

3、AIDL的调用过程

上一篇 下一篇

猜你喜欢

热点阅读