Android开发经验谈程序员Android开发

Android AIDL基础 -- Parcelable接口

2016-07-22  本文已影响1860人  androidjp

转载请说明出处: Android AIDL基础 -- Parcelable接口

什么是Parcelable接口


实现Parcelable接口


/** * 测试:地址

* **加上Parcelable成员的Parcelable接口实现示例**:

/**


## 扩展
---
1. 由于Parcelable对象不能向Serializable那样将对象保存到文件中等持久化操作,那么,我的对象要怎么做?
  答: `public class Student implements Parcelable,Serializable{……`,让类同时实现两个接口,即可使他能够序列化并存储到文件中。

2. 什么是Parcel?
  答:简单来说,Parcel就是一个存放数据的容器。Android中以Binder机制方式实现来IPC,就是使用了Parcel来进行Client和Server间的数据交互,而且AIDL的数据也是通过Parcel来交互的。同样的,在Java中和C/C++中,都有Parcel的实现【Parcel在C/C++中,直接使用内存来读取数据,所以此时Parcel它更加快速】
  换句话理解Parcel:我们知道,类A和类B可能想要通信,那么,要进行交流,A肯定不想把自己的实例(包括成员变量、方法等)整个复制到B那边,并且,A和B在同一个线程、甚至同个进程的不同线程都好说,如果是不同进程呢?那得怎么传,通过网络之类的咯?所以,就有了Parcel这个“打包”一说,A把A的一些信息进行说明,将这些说明打包(而不同打包自己的具体东西),然后把信息传给B,B读了之后,根据A给的提示选择,将选择同样用Parcel打包传回给A,A收到就跑,跑完数据后,返回结果又同样Parcel装着给到B,整个通信过程类似这样。
上一篇 下一篇

猜你喜欢

热点阅读