Android 系统启动流程

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

Android系统启动,一共分七个流程,Android系统启动流程图:
在这里插入图片描述
Android系统启动要比图上更复杂,这里是为了便于列举简化了细节。对于Android应用开发来说,这些知识点已经足够了。

1.启动电源以及系统启动

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

2.引导程序BootLoader

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

3.Linux内核启动

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

4.init进程启动

init进程启动主要做了以下事情:

  1. 创建和挂在启动所需的文件目录
  2. 初始化和启动属性服务
  3. 解析init.rc配置文件,并启动Zygote进程
5.Zygote进程启动

Zygote进程启动做了以下事情:

  1. 创建AppRuntime并调用其start方法,启动Zygote进程
  2. 创建Java虚拟机并为Java虚拟机注册JNI方法
  3. 通过JNI调用ZygoteInit的main函数进入Zygote的Java框架层
  4. 通过registerZygoteSocket方法创建服务器端Socket,并通过runSelectLoop方法等待AMS的请求来创建新的应用程序进程
  5. 启动SystemServer进程
6.SystemServer进程启动
  1. 启动Binder线程池,这样就可以与其他进程进行通信
  2. 创建SystemServiceManager,其用于对系统的服务进行创建、启动和生命周期管理
  3. 启动各种系统服务,AMS、PMS等
7.Launcher启动

Launcher的作用:

  1. 作为Android系统的启动器,用于启动应用程序
  2. 作为Android系统的桌面,用于显示和管理应用程序的快捷图标或者其他桌面组件

SystemServer进程在启动的过程中会启动PackageManagerService,PackageManagerService启动后会将系统中的应用程序安装完成。在此前已经启动的AMS会将Launcher启动起来。

WPS和Excel通用!省市区四级联动下拉菜单保姆级教程(附最新行政区划数据包) 本文详细介绍了在WPS和Excel中实现省市区四级联动下拉菜单的完整教程,包含2024年最新行政区划数据的获取与整理方法。通过名称管理器和INDIRECT函数的组合,以及WPS的特色功能,帮助用户高效准确地录入四级行政区划信息,提升数据录入效率并减少错误。 阅读详情

相关推荐

Python+Flask+Echarts打造全国气象数据可视化分析大屏

本文详细介绍了如何使用Python+Flask+Echarts构建全国气象数据可视化分析大屏,实现实时监控、趋势分析和快速决策。通过Python强大的数据处理能力、Flask的轻量级优势和Echarts的交互体验,打造高效的气象数据可视化系统,提升农业、物流等行业的决策效率。

weixin_29061531的博客 1059

Android系统启动流程

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

shaoenxiao的博客 2万+

LCD工程师必看:MIPI DSI的LP/HS模式切换全流程拆解(附高通平台实测)

本文为LCD工程师深度解析MIPI DSI接口中低速(LP)与高速(HS)模式切换的全流程。文章结合高通平台实测波形,从协议状态机、时序关键参数到实战调试案例,系统拆解了模式切换的本质、协同机制及常见问题排查方法,重点阐述了LP模式在低功耗控制与HS模式在高速数据传输中的核心作用与切换时序。

weixin_29240711的博客 547

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

Android系统启动流程

水w的博客 1940

SPH vs Lagrange网格混合建模实战:用LS-DYNA模拟弹丸穿孔效应

本文深入探讨了在LS-DYNA中运用SPH与Lagrange网格混合建模技术,高效模拟超高速碰撞下弹丸穿孔效应的实战方法。通过分析模型分区策略、耦合界面处理及关键参数设置,解决了传统方法在模拟大变形、材料断裂时的网格畸变或计算成本高昂问题,为相关工程仿真提供了兼顾精度与效率的解决方案。

weixin_29211309的博客 108

Sinutrain下载安装与开启OPC UA---kalrry

Sinutrain 开启 OPC UA 本教程只适用于版本,其他版本配置目录有所改变建议安装到默认路径,否则后期修改路径时候容易忽略细节本教程提供安装包为官方包,网上有些非官方包安装后容易出现授权问题,比如授权管理器无法启动,官方技术会建议你重装系统,很多时候是因为安装包非官方包在首次安装前,建议重启一遍系统。

kalrry 1万+

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

UNext:基于 MLP 的快速医学图像分割网络

有代码,可深入学习轻量级分割模型的论文切入点 UNet 及其最新扩展(如 TransUNet)近年来一直是领先的医学图像分割方法。然而,这些网络无法有效地用于应用中的快速图像分割,因为它们参数繁重、计算复杂且使用缓慢。为此,我们提出了 UNeXt,它是一种基于卷积多层感知器(MLP)的图像分割网络。我们以有效的方式设计了 UNeXt,其中包括早期卷积阶段和潜在阶段的 MLP 阶段。我们提出了一个标记化的 MLP 块,我们可以在其中有效地标记和投影卷积特征,并使用 MLP 来对表示进行建模。

Philo的博客 3940

《Android 平台架构&系统启动流程详解》

摘要:Android 是一个基于 Linux 的开源软件堆栈,针对多种不同设备类型打造。Android 平台的主要组件。Android 软件堆栈。Android 平台的基础是 Linux 内核。例如,Android 运行时 (ART) 依赖 Linux 内核来实现底层功能,例如线程处理和低级内存管理。使用 Linux 内核可让 Android 利用关键安全功能,并让设备制造商能够为知名内核开发硬件驱动程序。硬件抽象层 (HAL) 提供了用于向较高级别的 Java API 框架公开设备硬件

weijiangbc0的博客 1488

【unity游戏开发入门到精通——UGUI】UI控件 —— Image图像控件

【unity游戏开发入门到精通——UGUI】UI控件 —— Image图像控件

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 2354

使用curl命令出现fatal: unable to access ‘https://github.com/nvm-sh/nvm.git/‘: Encountered end of file的解决方案

本文主要介绍了使用curl命令出现fatal: unable to access ‘https://github.com/nvm-sh/nvm.git/’: Encountered end of file的解决方案,希望能对使用curl命令的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 1万+

Android系统启动流程详细图解

Android系统启动流程详细图解

风离紫竹zhangqiang的博客 1167

CAPL通过lookupSignal和DBLookup获取DBC信号的属性信息

CAPL通过lookupSignal和DBLookup获取DBC信号的属性信息以及一些相关问题

天赐好车的博客 2883

深入浅出Android系统启动流程

转载请标明出处:【顾林海的博客】 init进程启动过程 init进程概述        Android系统基于Linux,init进程是Android系统中用户空间的第一个进程,进程号为1,init源代码在system/core/init目录下。既然init进程是Android系统用户空间的第一个进程,因此担负着非常重要的责任,主要负责以下两件事: 解...

顾林海 2万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

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

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

Android 13 系统启动流程

Android系统启动流程大致分为三个阶段:BootLoader-->启动kernel-->启动Android。

weixin_53527829的博客 436

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【Android关键流程】系统启动流程

从上电开始到系统服务启动完成。整个流程的可以简述为:BootLoader -> Kernel -> Native-> Framework-> App。

weixin_42321153的博客 922

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Android系统启动流程分析(核心框架、大致流程分析版)

一篇文章了解Android启动流程

princesscode666的博客 1412

Android系统启动流程(四)Launcher启动过程与系统启动流程

此前的文章我们学习了init进程、Zygote进程和SyetemServer进程的启动过程,这一篇文章我们就来学习Android系统启动流程的最后一步:Launcher的启动流程,并结合本系列的前三篇文章的内容来讲解Android系统启动流程。建议读这篇文章前要通读本系列的前三篇文章,否则你可能不会理解我在讲什么。

Android进阶三部曲 - 刘望舒 2万+
上一篇: TensorFlow神经网络的激活函数
下一篇: Android 应用程序进程启动过程
王小_
博客等级 码龄11年 28粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值