Android进程间通信机制——AIDL

本文详细介绍了Android进程间通信机制中的AIDL(Android Interface Definition Language),包括如何在Android Studio中创建AIDL文件,实现Server端和服务,以及创建Client进行通信的步骤。通过AIDL,开发者可以方便地处理进程间的通信问题,简化了 Binder 接口的实现过程。
摘要由CSDN通过智能技术生成

Android进程间通信机制之AIDL

AIDL的全称为:Android Interface Definition Language,即安卓接口定义语言。我们可以使用它定义客户端和服务端通信时都认可的编程接口。

在Android中如果我们自己编写这个过程的代码,无疑是极其繁琐的。因此我们可以利用AIDL来处理,我们只需要编写aidl接口文件,然后再重新编译一下项目系统会帮我们生产Binder接口。

在Android Studio中编写AIDL

利用AIDL进行进程间通信的步骤如下:

  • 创建AIDL文件

    创建实体对象,实现Parcelable接口;

    创建aidl文件夹,创建aidl接口文件和实体类的映射aidl文件(aidl文件包名路径需要和实体对象包名路径一致);

    重新build一下项目。

  • 实现Server端

    创建service,创建Binder对象,实现接口方法;

    在onBind中返回创建的Binder对象。

  • 实现Client端

    创建ServiceConnection对象,实现其方法,需要再其方法中拿到AIDL对象;

    绑定服务bindService();

    通过调用AIDL类中的方法向服务端发起请求。


一、创建AIDL文件

1.创建Book实体类,实现Parcelable接口;

package com.kanlulu.aidl_test.bean;

import android.os.Parcel;
import android.os.Parcelable;

/**
 * Created by kanlulu
 */
public class Book implements Parcelable {
   
    private int bookId;
    private String bookName;

    public Book(int bookId, String bookName) {
   
        this.bookId = bookId;
        this.bookName = bookName;
    }

    public int getBookId() {
   
        return bookId;
    }

    public void setBookId(int bookId) {
   
        this.bookId = bookId;
    }

    public String getBookName() {
   
        return bookName;
    }

    public void setBookName(String bookName) {
   
        this.bookName = bookName;
    }

    @Override
    public String toString() {
   
        return "Book{" +
                "bookId=" + bookId +
                ", bookName='" + bookName + '\'' +
                '}';
    }

    protected Book(Parcel in) {
   
        bookId = in.readInt();
        bookName = in.readString();
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值