1 如何使组件运行在其他进程中
正常情况下,一个apk启动后只会运行在一个进程中,其进程名为AndroidManifest.xml文件中指定的应用包名,所有的基本组件都会在这个进程中运行。但是如果需要将四大组件运行在单独的进程中,就需要用到Android:process属性了。我们可以为android的组件指定process属性来指定它们运行在指定进程中。
通过设置组件的process属性可以开启新的进程,系统会创建一个独立的虚拟机,自然Application对象会再次创建一遍
静态成员在每个进程空间中都存在一份
2 多进程的好处
(1)Android系统对每个应用进程的内存占用是有限制的,占用内存越大的进程,通常被系统杀死的可能性越大。让一个组件运行在单独的进程中,可以减少主进程所占用的内存,降低被系统杀死的概率;
(2)如果子进程因为某种原因崩溃了,不会直接导致主程序的崩溃,可以降低主程序崩溃的概率;
(3)即使主进程退出了,子进程仍然可以继续工作,比如子进程是推送服务,在主进程退出的情况下,仍然能够保证用户可以收到推送消息。
3 多进程使用场景
(1)BroadcastReceiver
一个程序发送广播,可以启动其他程序的BroadcastReceiver。拿到清单文件中BroadcastReceiver的intentFilter中的action属性值,可以在另一个应用中发送广播启动当前应用里的BroadcastReceiver。
(2)ContentProvider
一个应用通过ContentProvider向其他的应用暴露自己的数据,供其他应用访问
(3)启动其他应用的activity或者service
到清单文件中Service/Activity配置的intentFilter中的action属性值,可以在另一个应用中启动当前应用中的Service/Activity,或者通过包名和组件名启动其他应用的组件。
参考链接:
http://blog.csdn.net/goodlixueyong/article/details/49853079