Android系统启动

Android 系统启动 Zygote 进程孵化出 system_server 进程,该进程负责启动和管理 Android 的核心系统服务,如 ActivityManagerService - AMS、ActivityTaskManagerService - ATMS、WindowManagerService - WMS、PackageManagerService - PMS 等服务进程;Zygote 进程是通过 Socket 的方式与其他进程通信的,这里的“其他进程”主要指的是 system_server 进程; 阅读详情

Android 系统启动系列文章:

首语

Android系统启动与应用启动、四大组件、AMS等很多内容都有关联,因此,Android系统启动是首先需要了解的知识。
Android系统启动系列以Android 13 源码进行分析。

Android 系统启动流程

Android系统启动流程

Android系统流程主要部分如上图所示。下面对各个流程进行解析。

Boot ROM

启动电源以及系统启动。当电源按下时引导芯片代码从预定义的地方(固化在ROM)开始执行。加载引导程序BootLoader到RAM,然后执行。

Boot Loader

引导程序Bootloader是在Android操作系统开始运行前的一个小程序,它的主要作用是把系统OS拉起来并运行。

Linux Kernel

Linux内核启动。当内核启动时,设置缓存、被保护存储器、计划列表、加载驱动。当内核完成系统设置时,它首先在系统文件中寻找init.rc文件,并启动init进程。

init

init进程启动。初始化和启动属性服务,并且启动Zygote进程。

Zygote

Zygote进程启动。创建java虚拟机并为Java虚拟机注册JNI方法,创建服务器端Socket,启动SystemServer进程。

System Server

System Server进程启动。启动Binder线程池和SystemServiceManager,并且启动各种系统服务。

Launcer

Launcer启动。被SystemServer启动的AMS会启动Launcer,Launcher启动后将已安装应用的快捷图标显示到桌面上。

总结

Android系统启动远比图中的过程要复杂,这里只是简化了。后面会把每一块拆分章节进行详细学习。

Android系统启动流程详解 启动引导程序(Bootloader)加载Linux内核初始化内核并加载根文件系统Zygote进程启动SystemServer进程启动启动Home应用程序下面我们将对每个阶段进行详细解释。Android系统的启动流程是一个复杂的过程,涉及多个组件和进程的协作。理解这一流程对于Android开发者来说非常重要,它可以帮助我们更好地理解系统的工作原理,优化应用程序的性能。 阅读详情

相关推荐

Android系统启动出现的 “安卓正在启动...” 界面的问题

Android系统启动出现的 “安卓正在启动...” 界面的问题目前安卓很多产品,开机没有解锁界面。开机过程中会出现“安卓正在启动...” 界面的问题。原因是FallbackHome机制导致。不同硬件耗时不同。对开机启动时间不做要求的,解决这个问题的方法很多。本文主要介绍解决该问题,并优化这部分耗时的办法。同时简单介绍其他几种,对安卓系统启动时间不做要求的办法。

hwj的博客 2932

Android 系统启动到 APP 运行原理 —— 中级安卓开发工程师进阶必看

Android系统架构分为五层:应用层、框架层、本地库层、HAL层和内核层。系统启动流程包括Bootloader加载内核、Init进程启动Zygote、SystemServer初始化核心服务,最终启动Launcher。应用启动时,AMS通过Zygote孵化新进程,完成Activity初始化和界面渲染。系统运行时包含1个Binder驱动、1个ServiceManager进程,以及Zygote、SystemServer等核心进程。AIDL通过自动生成Stub和Proxy类实现跨进程通信,客户端通过transac

da_ma_dai的博客 1419

Gephi新手必看:如何用Excel整理CSV数据快速生成网络图(附模板)

本文为Gephi新手提供了一份从Excel数据整理到生成专业网络图的完整指南。详细讲解了如何构建规范的节点表和边表CSV文件,并导入Gephi进行可视化分析。通过实战案例,帮助读者快速掌握利用Excel整理数据、规避常见错误,并运用布局算法与视觉编码,将复杂关系数据转化为直观的网络洞察。

weixin_28487433的博客 389

Android系统启动流程

在此说明,此文章只是个人的一个关于“Android系统启动流程”的一个总结,没什么源码。 Android系统启动流程: 1、启动电源以及系统启动: 当电源键按下时引导芯片代码从预定义的地方(固化在ROM)开始执行。加载引导程序BootLoader到RAM中,然后执行。 2、引导程序BootLoader: 引导程序BootLoader是在Android操作系统开始运行前的一个小程序,它的主...

shaoenxiao的博客 2万+

DSP28335与Vofa+上位机通信实战:SCIb配置避坑指南(附完整代码)

本文提供DSP28335与Vofa+上位机通信的实战指南,重点解析SCIb模块配置的常见问题与解决方案。针对研旭开发板的硬件连接、波特率精确计算、FIFO高效使用以及FireWater协议封装进行了详细说明,并附有完整代码,帮助开发者快速实现实时数据可视化与波形分析,提升调试效率。

weixin_29172963的博客 150

微信小程序云开发订单微信支付与小票和标签打印的完整高效流程

本片文章全文12000字,细致讲述从申请账户到小程序注册到打印机的选型最后到实现微信小程序云开发订单支付更新与小票,标签打印完整的高效流程。客户A在我们的点餐平台上点了一杯咖啡,所以客户要在选好后付款,在付款完成后商家的小票打印机和标签打印机打印出本订单的相关信息。

weixin_52312427的博客 3649

Android系统启动过程-uBoot+Kernel+Android

本文是参考大量网上资源在结合自己查看源代码总结出来的,让自己同时也让大家加深对Android系统启动过程有一个更加深入的了解!再次强调,本文的大多数功劳应归功于那些原创者们,同时一些必要的参考链接我会一一附上。注:由于本人采用Exynos4412开发板学习,所以本文大部分资料都是基于此处理器的简介:对于整个Android系统的启动总的来说分为三个阶段:BootLoader引导即uBoot.binlinux内核启动即zImageAndroid系统启动即ramdisk.img与system.img。

domen_pan的博客 3078

如何在Android上使用OpenCV进行摄像头标定

如何在Android上使用OpenCV进行摄像头标定,我们这里使用官方一个例程,其实并不难,只是网上的资料少了而已。相机标定是计算机视觉工作的前提,为了确定相机矩阵和畸变参数。

花草的博客 3439

android系统启动过程

的实现,可以深入理解 Android 启动流程的控制逻辑,并为定制系统行为(如添加新服务、修改启动顺序)提供技术基础。:SystemServer 完成服务启动后发送 BOOT_COMPLETED 广播。是用户空间的第一个进程(PID=1),解析。:内核完成系统启动,初始化系统服务和驱动。触发器启动 Zygote 进程。创建子进程并执行二进制文件。执行early-init阶段。脚本,管理服务生命周期。执行late-init阶段。加载SELinux策略。内核启动init进程。进入无限循环处理事件。

inquisiter 1294

【毕设级教程】从0到1实现基于YOLOv8的xView卫星图像目标检测系统(含UI界面,助力遥感智能毕设)

本文基于YOLOv8模型设计了一个面向xView卫星图像的目标检测系统。首先对xView数据集进行了格式转换处理,将原始多边形标注转换为YOLO格式的边界框标注。随后通过配置YOLOv8模型参数完成训练,实现了对卫星图像中建筑、车辆等多类目标的准确识别。为提高系统交互性,采用PyQt开发了可视化界面,支持图像选择、实时检测和结果展示功能。整个系统兼顾学术价值和实用价值,为遥感领域的自动化目标检测提供了可行方案。

m0_64661770的博客 130

芒果YOLO11改进146:OBB旋转检测头Head篇:即插即用|轻量化非对称多级压缩LOADH旋转检测头,原创改进适配YOLOv8高效检测头,检测头新颖改进,全网首发独一份

OBB旋转检测头Head篇:即插即用|轻量化非对称多级压缩LOADH旋转检测头,原创改进适配YOLOv8高效检测头,检测头新颖改进,全网首发独一份

包括YOLOv5、YOLOv7、YOLOv8等模型改进 641

【Android】系统启动流程(简介)

Android系统启动流程

水w的博客 1940

UWB:FiRa Consortium UCI Generic Technical Specification v1.1.0(2)- 核心控制消息;会话管理;测距会话管理

测距是UWB最核心的应用。为了方便应用调用测距接口,FIRA统一了UCI命令格式,这样各个厂商可以互相兼容。

Ankie资深技术项目经理 1276

Android系统启动流程分析

title: Android系统启动流程分析 date: 2021-09-27 23:35:00 tags: - 系统启动 - Android - Framework categories: Framework keywords: ‘Android,系统启动,Framework’ description: 此笔记记录分析Android系统启动过程的分析。 cover: https://upload-images.jianshu.io/upload_images/13838098-709a95ad43e71.

u010248147的博客 5694

ESP32网络开发实例-开发环境搭建

NodeMCU-ESP-32S开发环境搭建 NodeMCU-32S 最强的ESP32 开发板非盗版或副厂的CH340。WiFi 蓝牙ESP-32 可用Arduino IDE ESP32-S 是一款通用型WiFi-BT-BLE MCU模组,功能强大,用途广泛,可以用于低功耗传感器网络和要求极高的任务,例如语音编码、音频流和MP3解码等。 此款模组的核心是ESP32芯片,具有可扩展、自适应的特点。两个CPU核可以被单独控制或上电。时钟频率的调节范围为80 MHz到240 MHz。用户可以切断CPU的电源,利用低

视觉与物联智能 3781

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Android系统启动:

创建和挂载启动需要的文件目录。初始化和启动属性服务。解析init.rc配置文件并且启动Zygote进程。调用runtime的start函数启动Zygote。创建Java虚拟机并且为Java虚拟机注册JNI方法。通过JNI调用ZygoteInit的main方法进入zygote的Java框架层。通过registerServerSocket方法创建一个server端的socket;并且通过runSelectLoop方法来等待AMS请求创建新的应用程序进程。

weixin_74399377的博客 177

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

【Framework】Android系统启动优化总结

本文总结Android系统开机启动优化的七个关键阶段及具体措施:1)Bootloader阶段优化外设初始化;2)Kernel阶段精简内核配置;3)Init.rc阶段分阶段启动服务;4)Zygote阶段延迟非关键资源加载;5)SystemServer阶段异步启动服务;6)Launcher阶段预加载应用;7)Application阶段针对性优化。主要手段包括裁剪APK/服务/传感器、配置优化、删除开机动画、调整CPU调度策略等,通过全链路优化缩短启动时间。

ZyElite 1548

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Android系统启动,用过安卓手机的都知道,你还不知道吗?

Android系统启动一.Android系统启动概述1.启动电源以及系统启动2.引导程序BootLoader3.Linux内核启动4.init进程启动5.Zygote进程启动6.SystemServer进程启动7.AMS启动Launcher进程二.Android系统启动详解1.init进程的启动过程init进程的main函数(init.cpp)执行过程:2.Zygote进程的启动过程(C层)app...

LeeDuoZuiShuai的博客 2455

Android OS —— 系统启动之init.rc文件分析笔记

init.rc中的语言称为android init language,详细的

L_Nan的专栏 799

Android系统启动过程剖析

init_parse_config_fileàparse_configà parse_new_sectionàparse_service (或者parse_action)-> parse_line_service(或者parce_line_action)(3) 触发需要执行的action:Action需要在Triggers(触发条件)中调用,本阶段对需要执行的Action进行触发,并根据触发条件将需要执行的Action放入Action队列;函数间的调用执行关系使用“à”表示)

2401_89689756的博客 1888

Android系统启动的时候都干了什么

只有一张图片:但是我觉得非常系统,非常棒。

唯爱丶卡卡西的博客 258

Android源码之系统启动

Android系统启动概述 上电开机,CPU获取第一条指令,执行BootLoader引导装载程序; BootLoader加载Linux内核并启动内核,加载各种驱动和数据结构; 内核启动第一个用户进程,也就是内核空间到用户空间启动的第一个进程——init进程(c代码); init进程读取配置文件init.rc,配置文件中会启动一个Zygote孵化器进程App_main.cpp(由c进入c++...

让学习编程变得生动有趣~ 676

Android内核开发:系统启动速度优化

Android内核开发:系统启动速度优化 2015-06-23 19:40:41 标签:启动 优化 速度 boot Android 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://ticktick.blog.51cto.com/823160/1664754 在学习新知识的过程中,我一直很推荐结合实

lqxandroid2012的专栏 484
上一篇: Android 系统架构
下一篇: init 进程启动过程
八归少年
八归少年 新星创作者: 操作系统技术领域 新星创作者: 操作系统技术领域
博客等级 码龄9年 9011粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

八归少年

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

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

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

打赏作者

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

抵扣说明:

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

余额充值