parceled(freight和parcel的区别)

本文目录
- freight和parcel的区别
- Android Parcelable和Serializable的区别
- parcel怎么读
- parcelable和serializable的区别
- android里queryIntentActivities(resolveIntent, 0);返回的list的size为什么是0
freight和parcel的区别
freight 是轮船、飞机、火车或汽车运送的货物. parcel 是邮政或快递寄送的包裹.
freight
美[freɪt]英[freɪt]
v.货运;寄送;使充满(某种心情或口气)
n.货运;(海运、空运或陆运的)货物
网络运费;运输;船货
变形复数:freights;现在分词:freighting;过去式:freighted;
搭配freight carry;
例句The Mississippi River has always been a freight carrier.
密西西比河一向都是一条货运河流。
parcel
美[ˈpɑrs(ə)l]英[ˈpɑː(r)s(ə)l]
n.包裹;小包;一块地;一片地
v.包;打包;裹好
adj.部分(时间)的
adv.局部地
网络邮包;混合包
变形复数:parcels;过去式:parcelled;过去式:parceled;现在分词:parceling;现在分词:parcelling;
搭配send parcel;post parcel;receive parcel;deliver parcel;
例句The children were all eyes as we opened the parcel.
孩子们目不转睛地看着我们把包裹打开。
Android Parcelable和Serializable的区别
Parcelable和Serializable的作用、效率、区别及选择:
1、作用Serializable的作用是为了保存对象的属性到本地文件、数据库、网络流、rmi以方便数据传输,当然这种传输可以是程序内的也可以是两个程序间的。而Android的Parcelable的设计初衷是因为Serializable效率过慢,为了在程序内不同组件间以及不同Android程序间(AIDL)高效的传输数据而设计,这些数据仅在内存中存在,Parcelable是通过IBinder通信的消息的载体。从上面的设计上我们就可以看出优劣了。
2、效率及选择Parcelable的性能比Serializable好,在内存开销方面较小,所以在内存间数据传输时推荐使用Parcelable,如activity间传输数据,而Serializable可将数据持久化方便保存,所以在需要保存或网络传输数据时选择Serializable,因为android不同版本Parcelable可能不同,所以不推荐使用Parcelable进行数据持久化。
3、编程实现对于Serializable,类只需要实现Serializable接口,并提供一个序列化版本id(serialVersionUID)即可。而Parcelable则需要实现writeToParcel、describeContents函数以及静态的CREATOR变量,实际上就是将如何打包和解包的工作自己来定义,而序列化的这些操作完全由底层实现。
Parcelable的一个实现例子如下
[java] view plaincopy
public class MyParcelable implements Parcelable {
private int mData;
private String mStr;
public int describeContents() {
return 0;
}
// 写数据进行保存
public void writeToParcel(Parcel out, int flags) {
out.writeInt(mData);
out.writeString(mStr);
}
// 用来创建自定义的Parcelable的对象
public static final Parcelable.Creator CREATOR
= new Parcelable.Creator() {
public MyParcelable createFromParcel(Parcel in) {
return new MyParcelable(in);
}
public MyParcelable newArray(int size) {
return new MyParcelable[size];
}
};
// 读数据进行恢复
private MyParcelable(Parcel in) {
mData = in.readInt();
mStr = in.readString();
}
}
从上面我们可以看出Parcel的写入和读出顺序是一致的。如果元素是list读出时需要先new一个ArrayList传入,否则会报空指针异常。如下:
list = new ArrayList();
in.readStringList(list);
PS:
在自己使用时,read数据时误将前面int数据当作long读出,结果后面的顺序错乱,报如下异常,当类字段较多时务必保持写入和读取的类型及顺序一致。
11-21 20:14:10.317: E/AndroidRuntime(21114): Caused by:
java.lang.RuntimeException: Parcel android.os.Parcel@4126ed60: Unmarshalling
unknown type code 3014773 at offset 164
4、高级功能上Serializable序列化不保存静态变量,可以使用Transient关键字对部分字段不进行序列化,也可以覆盖writeObject、readObject方法以实现序列化过程自定义。
parcel怎么读
parcel[英][’pɑ:sl] [美][ˈpɑrsəl]
生词本
简明释义
n.包袱,包裹;(土地的)一块;一批,一群;(货物的)一宗
vt.分,区分;把…划成部分后分配;给…打成包裹;把…拼在一起
复数:parcels第三人称单数:parcels过去式:parceledparcelled过去分词:parceledparcelled现在分词:parcelingparcelling
易混淆的单词:Parcel
以下结果由 金山词霸 提供
柯林斯高阶英汉词典 短语词组 同反义词
in AM,use 美国英语用 parceling,parceled
1.N-COUNT包裹;邮包A parcel is something wrapped in paper,usually so that it can be sent to someone by post.
...parcels of food and clothing...
装着食品和衣物的包裹
parcelable和serializable的区别
Parcelable和Serializable的作用、效率、区别及选择:
1、作用
Serializable的作用是为了保存对象的属性到本地文件、数据库、网络流、rmi以方便数据传输,当然这种传输可以是程序内的也可以是两个程序间的。而Android的Parcelable的设计初衷是因为Serializable效率过慢,为了在程序内不同组件间以及不同Android程序间(AIDL)高效的传输数据而设计,这些数据仅在内存中存在,Parcelable是通过IBinder通信的消息的载体。
从上面的设计上我们就可以看出优劣了。
2、效率及选择
Parcelable的性能比Serializable好,在内存开销方面较小,所以在内存间数据传输时推荐使用Parcelable,如activity间传输数据,而Serializable可将数据持久化方便保存,所以在需要保存或网络传输数据时选择Serializable,因为android不同版本Parcelable可能不同,所以不推荐使用Parcelable进行数据持久化
3、编程实现
对于Serializable,类只需要实现Serializable接口,并提供一个序列化版本id(serialVersionUID)即可。而Parcelable则需要实现writeToParcel、describeContents函数以及静态的CREATOR变量,实际上就是将如何打包和解包的工作自己来定义,而序列化的这些操作完全由底层实现。
Parcelable的一个实现例子如下
[java] view plaincopy
public class MyParcelable implements Parcelable {
private int mData;
private String mStr;
public int describeContents() {
return 0;
}
// 写数据进行保存
public void writeToParcel(Parcel out, int flags) {
out.writeInt(mData);
out.writeString(mStr);
}
// 用来创建自定义的Parcelable的对象
public static final Parcelable.Creator《MyParcelable》 CREATOR
= new Parcelable.Creator《MyParcelable》() {
public MyParcelable createFromParcel(Parcel in) {
return new MyParcelable(in);
}
public MyParcelable newArray(int size) {
return new MyParcelable[size];
}
};
// 读数据进行恢复
private MyParcelable(Parcel in) {
mData = in.readInt();
mStr = in.readString();
}
}
从上面我们可以看出Parcel的写入和读出顺序是一致的。如果元素是list读出时需要先new一个ArrayList传入,否则会报空指针异常。如下:
list = new ArrayList《String》();
in.readStringList(list);
PS: 在自己使用时,read数据时误将前面int数据当作long读出,结果后面的顺序错乱,报如下异常,当类字段较多时务必保持写入和读取的类型及顺序一致。
11-21 20:14:10.317: E/AndroidRuntime(21114): Caused by: java.lang.RuntimeException: Parcel android.os.Parcel@4126ed60: Unmarshalling unknown type code 3014773 at offset 164
4、高级功能上
Serializable序列化不保存静态变量,可以使用Transient关键字对部分字段不进行序列化,也可以覆盖writeObject、readObject方法以实现序列化过程自定义
android里queryIntentActivities(resolveIntent, 0);返回的list的size为什么是0
resolveIntent设置的有问题。
Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null);
resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER);
PackageManager pm = context.getPackageManager();
List《ResolveInfo》 apps = pm.queryIntentActivities(resolveIntent, 0);

更多文章:
易语言网页api接口怎么调用(易语言,怎么读取网页json的api)
2026年10月11日 08:00
majority of(the majority of 和 a majority of的区别以及用法例句)
2026年10月11日 07:40
another time(another time和other time的区别)
2026年10月11日 05:00







