简介
线程:CPU调度的最小单元。是一种有限的系统资源
进程:执行单元
一个进程可以包含多个线程,进程和线程是包含和被包含关系
进程间通信的方式:Bindder和Socket
开启多进程的方式
android:process = "xxx.xxx"全名输入进程名代表私有进程,其他组件不可以和它跑在同一个进程中
或android:process = ":xxx" 当前进程名为(当前包名:xxx),简写方式代表全局进程,其他应用通过ShareUID方式可以和它跑在同一进程中
具有相同的ShareUID才可以共享数据,才可以相互访问对方的私有数据
多进程会遇到的问题
静态成员和单例失效:完全在2个进程中,只是代码一份而已
线程同步机制失效:对象锁不一样了
SharePreferences可靠性下降:xml读写方式,多线程不同步,并发出错
Application多次创建:有几个进程创建几次,因为系统要为新的进程分配虚拟机,各进程的Application对象为各自的进程
序列化反序列化
Serializable接口:
serialVersionUID:为反序列化提供辅助,只要序列化后数据的UID和当前类的UID相同才可以反序列化。依托于本地文件为介质
优点:书写简单,使用方便
缺点:造成大量的IO操作,效率低,开销大
Parcelable接口:内存中数据的序列化和反序列化
优点:书写繁琐
缺点:效率高,也是Android中推荐的方式
未完待补充
网友评论