当前位置: 首页 > 工具软件 > parcel > 使用案例 >

Parcel了解

宓弘壮
2023-12-01

了解Parcel类的作用

* Container for a message (data and object references) that can
 * be sent through an IBinder.  A Parcel can contain both flattened data
 * that will be unflattened on the other side of the IPC (using the various
 * methods here for writing specific types, or the general
 * {@link Parcelable} interface), and references to live {@link IBinder}
 * objects that will result in the other side receiving a proxy IBinder
 * connected with the original IBinder in the Parcel.

大概意思,Parcel就是一个存放读取数据的容器,  Android系统中的binder进程间通信(IPC)就使用了Parcel类来进行客户端与服务端数据的交互。

产生一个Parcel对象

public static Parcel obtain() {
        final Parcel[] pool = sOwnedPool;
        synchronized (pool) {
            Parcel p;
            for (int i=0; i<POOL_SIZE; i++) {
                p = pool[i];
                if (p != null) {
                    pool[i] = null;
                    if (DEBUG_RECYCLE) {
                        p.mStack = new RuntimeException();
                    }
                    return p;
                }
            }
        }
        return new Parcel(0);
    }


 类似资料: