Android多进程使用很简单,只需要在AndroidManifest.xml
的声明四大组件的标签中增加android:process
属性即可,process分私有进程和全局进程,私有进程的名称前面有冒号,全局进程没有,全局进程可以与其他应用通过相同的SharedUID
共享。
Android系统会为每个应用分配一个唯一的UID,具有相同UID的应用才能共享数据。两个应用通过ShareUID跑在同一个进程中是有要求的,需要这两个应用有相同的ShareUID并且签名相同才可以。在这种情况下,它们可以互相访问对方的私有数据,比如data目录、组件信息等,不管它们是否跑在同一个进程中。当然如果它们跑在同一个进程中,那么除了能共享data目录、组件信息,还可以共享内存数据,或者说它们看起来就像是一个应用的两个部分。
如果应用内有多个进程,每创建一个进程就会跑一次Application
的onCreate
方法,每个进程内存都是独立的。
不同进程之间内存不能共享,最大的弊端是他们之间通信麻烦,不能将公用数据放在Application
中,堆栈信息、文件操作也是独立的,如果他们之间传递的数据不大并且是可序列化的,可以考虑通过Bundle传递, 如果数据量较大,则需要通过AIDL或者文件操作来实现。