1 基本概念
1.1 android开启多进程的方式:
- 在menifest中指定android:process属性
- 通过jni在native层fork一个进程
两种配置process的方式
1 android:process:":remote"
2 android:process:"com.ryg.cha.remote"
:方式表示在当前进程名后加上remote,为当前应用私有进程,其它应用的组件不可以跑在这个进程。
而完整进程名的进程属于全局进程,其它应用的组件可以通过shareUID和它跑在统一进程。(还需要签名相同。)
1.2 Serializable和Parceable接口
接口类型 | 使用步骤 | 特点 | 适用场景 | 注意事项 |
---|---|---|---|---|
Serializable | 实现Serializable接口并声明serialVersionUID | java接口,使用简单但开销大,生成大量临时变量,大量IO,容易引起频繁GC | 序列化到存储设备或者网络传输 | transient变量不参与序列化 |
Parceable | 实现Parcelable接口,(1)重写writeToParcel方法,序列化为Parcel对象;(2)describeContents,默认返回1(3)实例化静态内部对象CREATOR实现接口Parcelable.Creator,反序列化 | android接口,效率更高,性能更优,推荐方式 | 内存序列化(例如Intent间数据传递、IPC),不能使用在将数据存储在磁盘的情况 | 成员变量中有对象类型时,反序列化需要传递当前线程的上下文类加载器 |
更多内容可参考:Android中Serializable和Parcelable序列化对象详解
1.3 序列化与持久化的区别
名称 | 作用 | 解决什么问题 |
---|---|---|
序列化 | 把内存中的对象变成流的形式 | 对象传输的问题,如何把对象变成字节流 |
持久化 | 将内存中的对象存储在永久保存的磁盘上面 | 对象存储和恢复的问题 |
网友评论