主要观点总结
本文介绍了Android系统中的systemserver进程,它是一个既可以运行Java代码也可以运行C和C++代码的全能型进程,负责管理Android系统中运行Java代码的进程。systemserver进程拥有许多服务,通过binder通信来使其他进程能够使用这些服务。它的启动过程涉及到解决多服务带来的启动问题,包括管理service、对service分类以及分发启动阶段信号。在启动过程中,会依次启动不同的服务,并通过特定的启动阶段信号通知各服务当前的状态。systemserver进程会一直处于运行状态,直到设备关机或重启。
关键观点总结
关键观点1: systemserver进程的角色
systemserver是一个管理Android系统中运行Java代码进程的全能型进程,拥有众多服务。
关键观点2: systemserver进程的管理职责
systemserver进程负责管理和调度由zygote进程孵化的所有运行Java代码的进程。
关键观点3: service间的通信方式
service间通过binder通信进行通信,允许其他进程使用service提供的功能。
关键观点4: 启动过程中的管理策略
在启动过程中,通过管理service、对service分类以及分发启动阶段信号来解决多服务带来的启动问题。
关键观点5: 启动阶段信号
在启动过程中,通过发送不同的启动阶段信号来通知各服务当前的状态,如PHASE_BOOT_COMPLETED信号代表启动完成。
关键观点6: systemserver进程的运行状态
systemserver进程会一直运行,直到设备关机或重启,期间通过管理各种服务来确保系统的正常运行。
文章预览
本文摘要 系统native进程的文章就先告一段落了,从这篇文章开始写Java层的文章,本文同样延续自述的方式来介绍 systemserver 进程,通过本文您将了解到 systemserver 进程是啥?它包含那么多的服务,是如何管理它们的?如何启动它们的?(文中代码基于Android13) 本文大纲: 1. 我是谁 2. 我的出生 3. 我的启动 4. 总结 1 我是谁 我是一个进程,是一个既可以运行Java代码也可以运行C和C++代码的全能型选手,不像我的“叔叔辈儿”如 logd进程 、 lmkd进程 只能运行C和C++代码。我拥有全能型能力还要感谢我的“父亲” zygote ,因为他是全能型的,所以我才把这些能力继承了过来。 我的uid是1000,uid是啥呢?它与你们人类的身份证一样,每个安装到Android设备上的程序都有一个uid,只要apk被安装就分配一个唯一的uid,只要apk不卸载,这个uid是不会变化的。uid为0也就是ro
………………………………