标签:
1.如何开启:
给四大组件(Activity、Service、Receiver、ContentProvider)在AndroidManifest.xml中指定"android:process"属性可以在应用内实现多进程。
如果进程名以":"开头,说明该进程属于私有进程,其他应用的组件不可以和它跑在同一个进程中;
如果进程名不以":"开头,则属于全局进程,其它应用通过ShareUID方式可以和它跑在同一个进程中。
2.注意两个进程之间的数据:
Android为每个应用分配了一个独立的虚拟机,或者可以说每个进程都有一个独立的虚拟机,不同的虚拟机在内存分配上有不同的内存地址,这就导致不同的虚拟机访问同一个类的对象会产生多份副本。
所以,所有运行在不同进程中的四大组件,只要他们之间通过内存来共享数据,都会共享失败。
一般来说,使用多进程会有以下影响:
<1>.静态成员和单例模式完全失效
<2>.线程同步机制完全失效(因为都不是一块内存了,所以不同进程锁都不是同一个对象)
<3>.SharePreferences的可靠性下降(因为SharePreferences不支持两个进程同时进行写操作,会导致一定几率的数据丢失,这是因为SharePreferences底层是通过读写xml来实现的)
<4>.Application会多次创建
标签:
原文地址:http://www.cnblogs.com/wufeng0927/p/5304448.html