zoukankan      html  css  js  c++  java
  • Android中AIDL的使用

    AIDL(Android接口定义语言)
    ---------------------------------
    AIDL用于定义跨进程通信时需要使用到的接口,即当多个应用程序都需要使用到相关的接口时,应该使用AIDL来定义。
    【使用AIDL定义接口的步骤】
    1. 使用一般的创建interface的方式创建Java接口文件
    2. 将创建的interface的权限删掉,即例如public interface IMusicPlayer修改为interface IMusicPlayer
    3. 打开Windows的资源管理器,找到该接口文件,修改扩展名为aidl


    AIDL的数据类型
    ---------------------------------
    AIDL默认只识别:
    1. 基本数据类型,例如int、long、float、boolean等……
    2. String,CharSeqence
    3. List
    自定义数据类型:
    1. 自定义类,例如Music,并且实现Parcelable接口
    2. 添加自定义类的aidl文件,例如Music.aidl,在该文件中,只需要package语句,和parcelable 类名,例如parcelable Music,即可
    3. 在aidl接口文件中,显式的添加import语句,导入自定义的数据类型,例如import cn.tedu.ipc.Music,无论当前aidl接口文件与自定义类的aidl文件是否在同一个包中,都必须显式的导包
    4. 当跨进程访问时,访问者(客户端)需要将服务
    端的aild接口文件、实体类的java文件、实体类的aidl文件全部复制到客户端,并且,保证包名与服务器端是一致的


    Parcelable接口
    ---------------------------------
    实现步骤:
    1. 自定义类,例如Music,实现Parcelable接口
    2. 重写describeContents()方法,直接返回0即可
    3. 重写writeToParcel()方法,调用第1个Parcel类型的参数的write???系列方法,将当前类(Music)类的成员写出
    4. 自定义readFromParcel(Parcel src)方法,根据第3步骤中调用wite???系列的顺序,依次调用Parcel参数的read???系列方法,并为当前类(Music)的各个成员赋值
    5. 自定义当前类(Music)的带Parcel参数的构造方法,并在构造方法中调用readFromParcel()
    6. 声明public static final Parcelable.Creator<Music> CREATOR常量,并使用匿名内部类的语法直接赋值,在匿名内部类中,public Music[] newArray(int size)方法直接返回new Music[size]即可,public Music createFromParcel(Parcel src)中,直接返回通过构造方法创建对象即可。

  • 相关阅读:
    在web项目下注册MySQL数据库驱动失败
    Servlet 调用过程
    请求时参数到后台解码时会出现乱码问题
    Request 部分功能
    dom4j增删改查
    微信消息处理JAXP-sax解析
    微信消息处理JAXP-dom解析
    inputstream与其他格式的转换
    微信消息处理
    将Gridview导出到Excel
  • 原文地址:https://www.cnblogs.com/fighting9527/p/5245298.html
Copyright © 2011-2022 走看看