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)中,直接返回通过构造方法创建对象即可。

更多相关文章

  1. Qt 5.7.0 编译Android(安卓)纯C++ 程序 支持C++11
  2. android中圆角图像生成方法
  3. 【Android(安卓)studio 解决过的问题】 Not a PNG file,Some file
  4. Android编程 系统资源的介绍
  5. Android(安卓)程序崩溃后的处理
  6. Android中Activity的生命周期探讨
  7. Android(安卓)XML文件中引用资源的方法
  8. 关于用代码实现android设备的重启
  9. Android对话框Dialog 的一点小问题

随机推荐

  1. 两个堆叠的元素与他们旁边的元素成比例增
  2. 如何将标记中的值传递给PHP变量?
  3. HTML语言中img标签的alt属性和title属性
  4. 使用 html5 svg 绘制图形
  5. XSL:包括根本不工作
  6. 在不可见的webbrowser对象中模拟按键C#
  7. jquery将html转换为字符串和html
  8. img在div中不按百分比调整大小
  9. 为什么代码放到DW里运行,和用记事保存为H
  10. cordova HTML5第一次尝试