Android AIDL 学习 (客户端)

接上移篇 Android AIDL 学习(服务端)我们今天来看看客户端怎么实现调用。

我们还是先创建个客户端项目,AClient

开发环境:Android Studio 3.6.2

保存的地方,你根据你的习惯随便找个地方保存。

 

 要实现AIDL的调用,需要有AIDL的服务放提供为我们AIDL接口文件,还有必须的类别才行。

那我们BService服务端,需要提供给我慢AIDL接口,还有用到的Book类的定义。

还需要提供给我们调用服务的action:com.example.bservice.bookService

服务器提供的AIDL接口:IMyBookManager

// IMyBookManager.aidl
package com.example.bservice;

// Declare any non-default types here with import statements
//需要采用全部包名的引入。
import com.example.bservice.Book;

//需要说明我们引入的book 是个序列化的类。
parcelable Book;

interface IMyBookManager {
    /**
     * 默认添加的基础类型接口,不用可以删掉
     */
    void basicTypes(int anInt, long aLong, boolean aBoolean, float aFloat,
            double aDouble, String aString);

    String login(String userName, String pwd);

    Book queryByName(String bookName);
}

服务端提供Book类的定义

package com.example.bservice;

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

import androidx.annotation.NonNull;

public class Book implements Parcelable {
    private int price;
    private String name = "";

    public Book(){}

    protected Book(Parcel in) {
        price = in.readInt();
        name = in.readString();
    }

    public static final Creator<Book> CREATOR = new Creator<Book>() {
        @Override
        public Book createFromParcel(Parcel in) {
            return new Book(in);
        }

        @Override
        public Book[] newArray(int size) {
            return new Book[size];
        }
    };

    public int getPrice() {
        return price;
    }

    public void setPrice(int price) {
        this.price = price;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @NonNull
    @Override
    public String toString() {
        return "name:" + name + ",price:" + price;
    }

    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeInt(price);
        dest.writeString(name);
    }
}

我们把这两个类添加到我们的项目中

在main右键选择新建一个文件夹,命名为aidl

在didl上点击右键新建包 com.example.bservice 这个报名就是服务提供给我们AIDL文件的报名。必须要一样。

在这个包中我们添加服务端给我们的aidl 文件

 

然后把服务端的接口内容粘贴到文件中。 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值