android - Android系统服务从哪里启动?

标签 android init platform

在嵌入式Android一书中,它说

In init.rc, only an action results in the execution of commands. Service declarations only serve to describe services, they do not actually start anything... (page 246).

那么,Android系统服务(如servicemanager、vold)是从哪里启动的呢?我认为它们是通过以下几行在 init.rc 中启动的。但是按照书上的说法,我错了。

service servicemanager \/system/bin/servicemanager

service vold /system/bin/vold

最佳答案

我找到了答案。

“服务声明仅用于描述服务,它们实际上并不启动任何东西”的说法是正确的。 native 守护进程实际上是通过以下几行在 init.rc 中启动的: (https://android.googlesource.com/platform/system/core/+/master/rootdir/init.rc 中的第 371-372 行)

  • class_start 核心
  • class_start main

属于 core 类和 main 类的所有守护进程分别启动。

关于android - Android系统服务从哪里启动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20041794/

相关文章:

java - 从Android中的服务获取Activity.Class

arrays - 从Kotlin中的输入流初始化数组

c++ - 未找到 OpenCL 平台

android - 在 Android sdk 警报管理器中的选定日期重复计划任务

java - Android,从源错误构建 SystemUI

java - 如何动态地在彼此下方添加按钮

python - 在 python 中作为非特权用户从 Web 服务器 worker 登录的设计模式

class - 类初始化中的可选参数

java - 是否可以使C/C++平台无关

operating-system - 获取有关操作系统的详细信息