【发布时间】:2021-03-31 21:13:36
【问题描述】:
我的理解是 PID 是每个正在运行的应用程序的唯一进程 ID。一个应用程序可以同时运行多个 PID,我们如何从 strace 输出中看到这一点?
【问题讨论】:
标签: android system-calls pid strace
我的理解是 PID 是每个正在运行的应用程序的唯一进程 ID。一个应用程序可以同时运行多个 PID,我们如何从 strace 输出中看到这一点?
【问题讨论】:
标签: android system-calls pid strace
我很惊讶这个 SO 问题没有答案(如果有,我会将此问题标记为“重复”):
Is it possible for an app to have several PID at the same time?
我做了一些实验,据我所知,一个应用可以创建 几个可以执行代码的 ART (AndroidRunTime) 实例 同时。这些实例中的每一个都由相同的 PID 调用,而不是 应用程序。这些 ART 实例中的每一个都可以创建多个线程,并且 这些线程具有应用程序 PID。但是一个应用程序是否有可能拥有 几个PID同时?如果是这种情况,您能否提供一个 例子?
是的,一个 Android 应用程序可以有多个不同的 PID。
来自 Android 文档:
Processes and threads overview
默认情况下,同一个应用程序的所有组件都运行在同一个 进程和大多数应用程序不应该改变这一点。
但它继续说:
但是,您可以在应用程序中安排不同的组件 在单独的进程中运行,您可以创建额外的线程 适用于任何进程。
每种类型的组件元素的清单条目-, , , and — 支持 android:process 可以指定该组件应该在其中的进程的属性 运行....
该元素还支持 android:process 属性, 设置适用于所有组件的默认值。
另外(来自我上面引用的 SO 帖子):
你也可以在不同的情况下发起不同的活动 带有 newTask 意图标志的 taskAffinities 然后将给出 也将 PID 与同一应用的这些活动分开。
【讨论】: