在AndroidStudio中创建aidl文件

创建过程


首先创建Java文件 Book.java,

package com.amy.ipc.c2_ipc.aidl;

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

/**
 * Created by Administrator on 2016/5/19.
 */
public class Book implements Parcelable{
    public int bookId;
    public String bookName;

    protected Book(Parcel in) {
        bookId = in.readInt();
        bookName = 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];
        }
    };

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

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

由于我的Book.java文件是创建在对应的aidl包中的,如下图

这里写图片描述

所以必须要在创建adil文件时,也要把相对应的aidl文件创建在相应的包中

这里写图片描述

对应的包的位置如下

这里写图片描述

创建Book.aidl文件 用来声明 Book类

/**
*注意包名
*/
package com.amy.ipc.c2_ipc.aidl;

parcelable Book;

创建 IBookManager.aidl 定义接口
虽然在同一个包内,但是依然要声明book类,这是aidl的特殊之处

// IBookManager.aidl
package com.amy.ipc.c2_ipc.aidl;
/**
*注意包名
**/
import com.amy.ipc.c2_ipc.aidl.Book;
// Declare any non-default types here with import statements

interface IBookManager {
    /**
     * Demonstrates some basic types that you can use as parameters
     * and return values in AIDL.
     */
    void basicTypes(int anInt, long aLong, boolean aBoolean, float aFloat,
            double aDouble, String aString);
            List<Book> getBookList();
            void addBook(in Book book);
}

最后makeproject编译生成了对应的java文件,在build\generate文件夹下,

注意,上面的步骤是要严格执行的,每个步骤出错都会有不同的问题出现。

不明白为什么android studio要在与java文件夹平行创建aidl文件夹,从eclipse转过来的同学们很容易混淆这个问题,本人水平有限,希望能给大家提供一些帮助

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值