Android 的 SystemServer 是什么?
What is SystemServer for Android?
我从 Android 的源代码中研究了 package com.android.server;
。有一些文档表明在系统启动时加载其他重要服务如 Activity/Package/Power 等是主要作用,但这只是我的猜测。
有人可以更详细地解释什么是 SystemServer 的关键角色吗?
这里有一个很好的演示文稿,详细说明了 android 上的 SystemServer 是什么。
以下是 Android 系统服务器处理的服务列表(来自同一演示文稿):
一旦Linux内核启动后,祖父Init将开始运行其PID为1,这将进一步启动所有与Init相关的守护进程,如logd、Installd、ueventd、lmkd和 Zygote Init
进一步 Zygote init 将启动系统服务器,它就像一个容器,包含各种服务,如 Powermanager 服务、Location Manager 服务、Acitivity Manager 服务。
例如:
Acitivity Manager 服务将进一步启动 Launcher Activity.
您可以通过以下命令验证系统服务器:
cat /proc/`pidof system_server`/task/*/comm
系统服务器代码在frameworks/base/services/java/com/android/server/,命名为System_server.java.
因此system_server进程启动所有系统服务。这些服务 运行 作为 system_server 进程内的线程。
我从 Android 的源代码中研究了 package com.android.server;
。有一些文档表明在系统启动时加载其他重要服务如 Activity/Package/Power 等是主要作用,但这只是我的猜测。
有人可以更详细地解释什么是 SystemServer 的关键角色吗?
这里有一个很好的演示文稿,详细说明了 android 上的 SystemServer 是什么。
以下是 Android 系统服务器处理的服务列表(来自同一演示文稿):
一旦Linux内核启动后,祖父Init将开始运行其PID为1,这将进一步启动所有与Init相关的守护进程,如logd、Installd、ueventd、lmkd和 Zygote Init
进一步 Zygote init 将启动系统服务器,它就像一个容器,包含各种服务,如 Powermanager 服务、Location Manager 服务、Acitivity Manager 服务。
例如: Acitivity Manager 服务将进一步启动 Launcher Activity.
您可以通过以下命令验证系统服务器:
cat /proc/`pidof system_server`/task/*/comm
系统服务器代码在frameworks/base/services/java/com/android/server/,命名为System_server.java.
因此system_server进程启动所有系统服务。这些服务 运行 作为 system_server 进程内的线程。