SystemServer 浅析

本篇文章主要介绍 Android 开发中 SystemServer进程启动 部分知识点,通过阅读本篇文章,您将收获以下内容:

1.SystemServer 进程启动导图

欢迎关注微信公众号:程序员Android

微信公众号:ProgramAndroid

我们不是牛逼的程序员,我们只是程序开发中的垫脚石。

1. SystemServer 进程启动导图

640?wx_fmt=png

SystemServer 进程启动导图

2. SystemServer 启动过程分析

SystemServer 代码路径

\alps\frameworks\base\services\java\com\android\server\SystemServer.java

  1. main 方法

640?wx_fmt=png

systemServer main 方法

  1. Run 方法中初始化 时间,时区,语言等

640?wx_fmt=png

Run 方法中初始化信息

  1. 设置VM 内存,准备 main looper 初始化 Native 服务

640?wx_fmt=png

设置VM 内存,准备 main looper 初始化 Native 服务

  1. 检测最近一次触发关机是否失败

640?wx_fmt=jpeg

performPendingShutdown

640?wx_fmt=png

performPendingShutdown 实现

  1. 初始化 system context

640?wx_fmt=png

初始化System context

  1. 创建 systemServiceManager

640?wx_fmt=png

创建 systemServiceManager

  1. 将 systemServiceManager添加到LocalServices

640?wx_fmt=png

将 systemServiceManager添加到LocalServices

  1. 初始化systemServer 线程池

640?wx_fmt=png

初始化systemServer 线程池

3. SystemServer 开启Service 流程

640?wx_fmt=jpeg

开启Service

  1. 开启引导服务

640?wx_fmt=png

开启引导服务导图

  1. 开启核心服务

640?wx_fmt=png

开启核心服务 导图

  1. 开启其他服务

640?wx_fmt=png

开启其他服务导图

4. SystemServer 开启引导服务实现

startBootstrapServices实现

640?wx_fmt=png

startBootstrapServices1

640?wx_fmt=png

startBootstrapServices 2

640?wx_fmt=png

startBootstrapServices 3

5.SystemServer 开启核心服务实现

startCoreServices

640?wx_fmt=png

startCoreServices

6.SystemServer 开启其他服务实现

startOtherServices

640?wx_fmt=png

startOtherServices

640?wx_fmt=png

startOtherServices

640?wx_fmt=png

startOtherServices

640?wx_fmt=png

startOtherServices

640?wx_fmt=png

startOtherServices 确认各个Service 已准备就绪

640?wx_fmt=png

启动SystemUI

640?wx_fmt=png

启动SystemUI

640?wx_fmt=png

确认watchdog Thrid app Location 等已准备好

至此,本篇已结束,如有不对的地方,欢迎您的建议与指正。期待您的关注,

如有侵权,请联系小编,小编对此深感抱歉,同时小编会立即停止侵权行为。

欢迎关注微信公众号:程序员Android

微信公众号:ProgramAndroid

我们不是牛逼的程序员,我们只是程序开发中的垫脚石。

640?wx_fmt=gif

点击阅读原文,获取更多福利

640?wx_fmt=gif

posted @   程序员Android的博客  阅读(117)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
点击右上角即可分享
微信分享提示