Android 应用程序怎么可能有多个进程?

问题描述 投票:0回答:3

我开发了一个Android应用程序,有1个进程和2个服务。但我注意到“Google 服务”有 2 个进程和 1 个服务。怎么会有2个进程呢?我在进程和线程上阅读了一些内容,试图了解有关进程的更多信息。它谈到有一个清单条目,但没有具体的例子我不明白。有人可以解释一下 Android 应用程序如何拥有多个进程并提供具体示例吗?

android process
3个回答
56
投票

您可以在清单中指定

android:process=":remote"
,以便在单独的进程中运行活动/服务。

“remote”只是远程进程的名称,你可以随意称呼它。如果您希望多个活动/服务在同一进程中运行,只需为其指定相同的名称即可。

<activity android:name=".RemoteActivity" android:label="@string/app_name" android:process=":RemoteActivityProcess"/>

7
投票

如果您正在寻找示例,请查看hogwarts库,它将为您提供在Android中进行多进程编程的设施。

基本上,为了在“自己的”进程中运行服务,您需要具备以下条件。

  1. 在AndroidManifest.xml中,确保服务的进程属性是“:remote”或类似的带有“:”前缀的内容
  2. 使用 startService() 调用从您的 Activity 中启动服务。
  3. 使用AIDL进行ipc。
  4. 使进程之间的所有传输都可打包。 (这其实就是第3点的要求)

0
投票

以及其他

我有一个在 Wince 中运行的应用程序,用 C# 编写;使用maui.net成功移植到Android,此应用程序需要在后台运行,其他应用程序将向此后台应用程序发送消息,用于打印标签和检查蓝牙状态(打印机有纸吗?是否在线?是连接了吗?)。 然后,我正在研究如何创建与其他应用程序通信的应用程序。 我在YouTube上看到了这个视频,它对我了解后台进程、IPC、Binder、AIDL有很大帮助。 来自 YouTube:“此截屏视频来自 Aleksandar Gargenta 于 2012 年 12 月 5 日举行的 AnDevCon IV 演示。” 我在 2025 年 1 月 23 日看到了这个视频,我不知道这个视频什么时候才能发布,我强烈建议你观看。 Android Binder IPC 框架

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.