一、开机链 + SystemServer

SystemServer启动Launcher流程 了解过Launcher(桌面)的人都知道launcher作为桌面是用户开机解锁后看到的第一个页面,其本质上就是一个Activity。因此,它的启动自然少不了AMS(ActivityMangerService)的参与,对于Service的统一管理,必然少不了SystemServer的参与。本文主要梳理Android系统开机之后,从SystemServer开始启动Launcher的流程。 由SystemServer启动Launcher的简易流程图可知,该过程其实就是系统进程到应用进程的一个过程,他们之间通过B 阅读详情

1、问题

开机后,谁把 AMS/WMS 等系统服务拉起来?App 为什么能「按名」找到它们?

开机后由init-Zygote-SystemServer负责启动AMS/WMS等系统服务;
App之所以能「按名」找到它们,是因为这些服务启动后会像ServiceManager注册自己的Binder入口。

2、入口

角色干什么(各写 ≤15 字)
init解析启动脚本,拉起Zygote等关键进程
Zygote预加载类/资源,fork出app和system_server
system_server / SystemServer在system_server 进程里创建并启动系统服务
ServiceManager(真)系统注册服务表:addService/getService
Launcher桌面 App,用户看到的首页

3、主路径(开机到桌面)

1. 按下电源 / Bootloader
   → 
2. init 启动
   → 
3. 启动 Zygote
   → 
4. Zygote fork 出 system_server
   → 
5. SystemServer.run() / startBootstrapServices / startCoreServices / startOtherServices
   → 创建 AMS、WMS、PMS、Power… 并 addService
6. 系统就绪,启动 Launcher(桌面)
   → 

电源/Boot

init

Zygote

system_server

SystemServer 启服务

ServiceManager.addService

Launcher 桌面

4、实践 —— 在手机/模拟器上看

# 1)系统是否起来、有没有 system_server
adb shell ps -A | grep system_server

# 2)已登记的服务名(真 ServiceManager 电话簿)
adb shell service list | head -40

# 3)和 Activity 相关的服务是否在
adb shell service list | grep -i activity

# 4)粗看 AMS(有输出即可,不必读懂全部)
adb shell dumpsys activity activities | head -30

5、读源码入口

浏览器打开:https://cs.android.com
搜索:SystemServer.java(选 frameworks/base/services/java/…/SystemServer.java)

服务名摘录:

1.  ActivityManager
2.  WindowManager
3.  PackageManager
4.  PowerManager
5.  battery
6.  DisplayManager
7.  IDreamManager
8.  BluetoohManager

6、口述

1、Zygote 干什么?SystemServer 干什么?
2、默画开机 5~7 步

用Perfetto精准分析Android 14开机流程:从Zygote到SystemServer的耗时拆解 系统性能优化,尤其是开机速度优化,常面临无法定位具体瓶颈的困境。开机链条涉及Kernel、init、Zygote、SystemServer等多个阶段,任一环节延迟都会影响整体体验。Perfetto作为新一代系统跟踪分析工具,通过ftrace、进程调度、Binder事务等多数据源同步,将全链路行为呈现在统一时间线上,帮助工程师量化每个阶段的耗时。基于trace数据,结合SQL查询可快速提取Zygote预加载、SystemServer服务启动、锁等待及CPU频率等关键指标,实现从现象到根因的层层剖析。在Andr 阅读详情

相关推荐

Android 14.0 framework中开机启动之SystemServer相关源码分析

在14.0的系统rom定制化开发中,systemserver进程也是非常重要的,system_server 进程承载着整个framework的核心服务, 例如创建 ActivityManagerService、PowerManagerService、DisplayManagerService、PackageManagerService、WindowManagerService、 LauncherAppsService等80多个核心系统服务。这些服务以不同的线程方式存在于system_server这个进程

安卓兼职framework和app工程师的博客 513

Android Framework - 开机启动 SystemServer 进程

相关文章链接: 1. Android FrameWork - 学习启动篇 3. Android FrameWork - 开机启动 Zygote 进程 相关源码文件: /frameworks/base/core/java/com/android/internal/os/ZygoteInit.java /frameworks/base/core/java/com/android/internal/os...

z240336124的专栏 2794

05 Android开机启动之SystemServer

从上面整个Android开机启动思维导图中可以看到:SystemServer是从Zygote中启动的。开机->bootloader->kernel->init->zygote->SystemServer。

Johnny2004的专栏 1397

android 开机启动流程分析(15)SystemServer部分服务解读

系列文章解读&说明: Android开机启动流程的分析主要分为以下部分: android 开机启动流程分析(01) init之前启动说明 android 开机启动流程分析(02)init的启动流程分析 android 开机启动流程分析(03)init启动中关键进程 uevent & watchdog android 开机启动流程分析(04)init启动中关键服务-属性服务...

wangdsh的博客 1242

Android 10.0 framework中开机启动之SystemServer相关源码分析

在10.0的系统中,systemserver进程也是非常重要的,system_server 进程承载着整个framework的核心服务, 例如创建 ActivityManagerService、PowerManagerService、DisplayManagerService、PackageManagerService、WindowManagerService、 LauncherAppsService等80多个核心系统服务。这些服务以不同的线程方式存在于system_server这个进程中,接下来简单分析下

安卓兼职framework和app工程师的博客 1326

Android系统开机启动时间:SystemServer优化

Android系统开机启动时间优化 之 SystemServer优化

hwj的博客 808

Android开机流程(一)

参考文章 Android系统开篇 一、概述 简单梳理下Andorid启动流程。 一般操作系统启动流程如下图: Android系统启动流程概览: system_server服务启动流程 启动过程:  Loader -> Kernel -> Native -> Framework -> App 1.1  Loader层 Boot ROM: 当手机...

SwallowJoe的博客 1万+

Android Framework中开机启动之SystemServer相关源码分析

该文件中定义了SystemServer类,它是Android系统启动的入口点。启动引导服务是SystemServer的最后一步工作,它负责启动一些关键的系统服务,例如PackageManagerService、ActivityManagerService等。本文对Android Framework中SystemServer的相关源码进行了详细分析,介绍了SystemServer的启动流程和关键方法。通过这样的启动流程,Android系统能够在开机时加载和启动各种系统服务,为应用程序提供必要的功能和支持。

2301_79331387的博客 163

Android FrameWork - 开机启动 SystemServer 进程

还有一个重要的地方,就是 binder 线程池的启动,启动binder 线程池后SystemServer进程就可以与其他进程进行通信了,在之前的安卓源码中,binder 线程池的启动都是放在启动 SystemServer 时创建的,而安卓 12 是在。在前面分析 AndroidRuntime::start 代码时,我们知道 startReg 就是注册 JNI 方法 的。,记住这里的 所有参数就是上面的 构造启动 system_server 的参数,包括写死的。在安卓 10 之前,启动系统服务是通过。

WriteBug001的博客 844

Android 13.0 framework中开机启动之SystemServer相关源码分析

在13.0的系统rom定制化开发中,systemserver进程也是非常重要的,system_server 进程承载着整个framework的核心服务, 例如创建 ActivityManagerService、PowerManagerService、DisplayManagerService、PackageManagerService、WindowManagerService、 LauncherAppsService等80多个核心系统服务。这些服务以不同的线程方式存在于system_server这个进程中,

安卓兼职framework和app工程师的博客 468

高通平台Android开机流程全解析:从BootROM到SystemServer

Android设备的开机过程远不止从init开始:芯片上电后,BootROM、PBL、XBL等bootloader阶段完成签名校验、DDR训练与安全世界建立,随后Linux内核加载驱动并挂载根文件系统,最后由init、Zygote与SystemServer接力启动用户空间。理解这条完整链路,是进行开机动画定制、fastboot调试和启动性能优化的基础。不同阶段的故障表现各异——黑屏、卡Logo、无限重启或动画转圈——需要借助串口日志、boot_progress事件和initcall耗时来精准定位。以高通平台

weixin_30954817的博客 184

android 开机启动流程分析(14)SystemServer WatchDog解读

系列文章解读&说明: Android开机启动流程的分析主要分为以下部分: android 开机启动流程分析(01) init之前启动说明 android 开机启动流程分析(02)init的启动流程分析 android 开机启动流程分析(03)init启动中关键进程 uevent & watchdog android 开机启动流程分析(04)init启动中关键服务-属性服务...

wangdsh的博客 1296

USB PD快充功率监测仪:高精度嵌入式USB电压电流测量终端

USB供电已从数据接口演进为关键电源总线,尤其在PD快充场景下,工程师亟需对5V–20V宽压范围内的实时电压、电流及瞬时功率进行精准捕获。其底层原理依赖高共模抑制比的高边电流检测与分压采样+ADC数字化处理,结合LDO低噪声供电保障模拟链路精度。该类设备的技术价值在于以低成本实现协议无关的‘电气层可视化’,规避商用ASIC测试仪的黑盒局限,支撑PD充电验证、电源设计调试与教学实验等工程实践。本文介绍的开源USB表即基于N32G430 MCU与INA199电流检测芯片,覆盖USB-C输入/输出双通道监测,具备

weixin_42174098的博客 207

安卓 SystemServer 启动流程

可以看到PowerManagerService先于AudioService启动,此时如果在PowerManagerService启动后立刻调用AudioService中的接口就会引发 JE 崩溃,进而导致system_server崩溃。

事后不诸葛的博客 2088

NotebookLM平替实测:用Open Notebook+Ollama零成本搭建私有AI知识库

本文提供了一份详细的实战指南,教你如何利用Open Notebook与Ollama,在本地零成本搭建一个功能强大且完全私有的AI知识库。通过Docker容器化部署,实现数据绝对安全、模型自由选择与离线运行,是NotebookLM等云端工具的绝佳平替方案,尤其适合注重数据隐私的教育工作者、研究者及小团队。

weixin_29052717的博客 513

用STM32定时器PWM高级功能驱动步进电机:F103C8T6+TB6600实战教程

本文详细介绍了如何利用STM32F103C8T6微控制器的定时器PWM高级功能驱动TB6600步进电机驱动器,实现高效、灵活的运动控制方案。通过硬件配置、PWM参数计算、运动控制算法及TB6600高级功能应用的全面解析,为工业自动化和精密控制领域提供了实用的技术参考。

game4的博客 186

【安卓开机启动】SystemServer启动

本文基于安卓6.0源码,对systemserver进程的启动与管理的基本过程进行介绍。 从Zygote进程初始化ZygoteInit.main()中调用startSystemServer()fork出子进程开始。 SystemServer负责启动和管理整个java framework,包含ActivityManager,WindowManager,PackageManager以及PowerManager等。 在一号进程init(),解析init.rc文件,并启动其中的Zygote服务,会调用Zygote.

qq_23542165的博客 371

告别手写代码!用Simulink给TI F28335 DSP自动生成C代码(保姆级环境配置)

本文详细介绍了如何利用Simulink为TI F28335 DSP自动生成C代码,告别传统手写代码的低效与错误。通过保姆级环境配置指南和实战案例,帮助开发者快速掌握模型驱动开发方法,大幅提升嵌入式开发效率,特别适合需要频繁修改算法参数或团队协作的工程师。

weixin_30388677的博客 416

Android开机流程、Zygote进程、systemserver、ServiceManager

上电后,BootRom会被激活,引导芯片代码开始从预定义的地方(固化在ROM)开始执行,然后加载引导程序到RAM。Android是基于Linux系统的,它没有BIOS程序,取而代之的是(系统启动引导程序)。引导程序是厂商加锁和限制的地方,它是针对特定的主板与芯片的。厂商要么使用很受欢迎的引导程序比如redbootubootARMboot等或者开发自己的引导程序,它不是Android操作系统的一部分。流程图如下:Linux内核启动时,设置缓存、被保护存储器、计划列表、加载驱动。

AndroidDeveloper的专栏 2704

(nginx) nginx5 nginx https部署实战

综上所述,相比 HTTP 协议,HTTPS 协议增加了很多握手、加密解密等流程,虽然过程很复杂,但其可以保证数据传输的安全。所以在这个互联网膨胀的时代,其中隐藏着各种看不见的危机,为了保证数据的安全,维护网络稳定,建议大家多多推广HTTPS。SSL 证书费用很高,以及其在服务器上的部署、更新维护非常繁琐HTTPS 降低用户访问速度(多次握手)网站改用HTTPS 以后,由HTTP 跳转到 HTTPS 的方式增加了用户访问耗时(多数网站采用302跳转)

weixin_50382197的博客 1505

【AI】获取各类AI大模型api-key的快速教程(OpenAI、Gemini、Claude、DeepSeek)

【AI】获取各类AI大模型api-key的快速教程(OpenAI、Gemini、Claude、DeepSeek)

funfan的博客 2966

Android 开机流程介绍

本文章涉猎Android多个层级,旨在梳理整体流程,对Android设备的启动有一个感性的认识,能够达到一定逻辑自洽。Android的每个模块、每个进程、每行代码都有其深度,没有细细揣测与推敲,是有点"亵渎"了,他日必对其中感兴趣模块加以研究,respect!

佛祖保佑,永无巴戈。 2253

Yolov8-pose关键点检测:loss优化 | LRM loss困难样本挖掘,提升难样本、遮挡物等检测精度

LRM loss应用到能够大幅提升pose遮挡物性能

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 1715

SystemServer 启动流程

由 Zygote进程孵化而来。init进程启动后,会解析 init.rc文件,启动 Zygote进程。Zygote随后会启动 SystemServer的main方法是一个入口,真正的启动工作在一个名为run的方法中完成。引导阶段:启动最小化的、至关重要的基础服务核心阶段:启动核心的系统服务,这些服务对 Android 的正常运行至关重要,但可能依赖于引导服务其他阶段:启动所有其他的服务,包括图形、传感器、蓝牙等,这些服务通常依赖于前两个阶段的服务阶段主要服务特点与依赖引导阶段。

w2064004678的博客 835

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

android 开机启动流程分析(12)SystemServer启动分析

系列文章解读&说明: Android开机启动流程的分析主要分为以下部分: android 开机启动流程分析(01) init之前启动说明 android 开机启动流程分析(02)init的启动流程分析 android 开机启动流程分析(03)init启动中关键进程 uevent & watchdog android 开机启动流程分析(04)init启动中关键服务-属性服务...

wangdsh的博客 1539

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

上一篇: Service 推送 / Stub·Proxy 对调
下一篇: 二、AMS + Activity 启动主路径
黄毛火烧雪下
黄毛火烧雪下 领域专家: 操作系统技术领域 领域专家: 操作系统技术领域
博客等级 码龄14年 7714粉丝 439原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黄毛火烧雪下

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值