一个Android应用程序如何拥有多个进程?

26

我开发了一个Android应用程序,它有1个进程和2个服务。但是我注意到“Google 服务”有2个进程和1个服务。它怎么可能有两个进程?我在进程和线程中阅读了一些内容以尝试更多地了解进程,它谈到了具有清单条目,但没有具体的示例我不懂。能否有人解释一下Android应用程序如何拥有多个进程,并提供具体的示例?

2个回答

54
您可以在清单文件中添加 android:process=":remote" 来指定一个活动/服务在一个单独的进程中运行。
"remote" 只是远程进程的名称,您可以随便命名。如果您希望多个活动/服务在同一进程中运行,只需将它们命名为相同的名称即可。
<activity android:name=".RemoteActivity" android:label="@string/app_name" android:process=":RemoteActivityProcess"/>

4
你的答案和博客看起来很不错。我接受你的答案并投票支持它。如果我以后需要一些澄清,希望你可以提供。 - Marie
1
博客文章链接已失效,请修复它,因为这真的很有趣。 - Jojje
链接显示了某种彩票。请修复链接。 - CopsOnRoad

7
如果你正在寻找示例,请查看hogwarts库,它将为您提供在Android中进行多进程编程的工具。
基本上,要在“自己”的进程中运行服务,需要以下几个步骤:
1. 在AndroidManifest.xml中,确保服务的process属性是“:remote”或类似于带有“:”前缀的内容。 2. 从你的activity中使用startService()调用来启动服务。 3. 使用AIDL进行进程间通信。 4. 确保所有传输的数据都可以通过Parcelable进行传递。(这实际上是第三点的要求)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接