当前位置: 首页 > news >正文

Android系统启动流程

android的启动流程是从底层开始进行的,具体如下所示:

Android是基于Linux内核的系统,Android的启动过程主要分为两个阶段,首先是Linux内核的启动,然后是Android框架的启动。

可以将Andorid系统的启动流程分为以下五个层进行展开,分别是Loader层,Kernel层,Native层,Framework层,Application层。

Loader层
1.首先按开机键后,引导芯片将引导程序从ROM中加载到RAM中
2.引导程序(Bootloader)的主要作用就是将操作系统映像文件拷贝到RAM中
Kernel层
3.接着通过start_kernel函数和reset_kernel函数完成对kernel的初始化操作,同时启动用户空间的init进程
4.init进程是是一个十分重要的祖先进程,linux中的所有进程都是由init进程直接或者间接fork出来的,init进程一启动时就会读取init.rc脚本文件
Native层(包括利用surfaceflinger创建动画,孵化zygote进程,以及用户守护进程)
5.init进程创建后,会fork出一个zygote进程,这个进程是所有Java进程的父进程,所有的服务都会向其进行请求来fork出java进程
6.init还会创建servicemanager进程,它是Binder IPC通信过程中的守护进程,并会集中管理系统内的所有服务
Framework层
7.由zygote进程通过startSystemServer()方法fork出SystemServer进程,该进程同样是Andorid系统内重要的进程,AMS,PMS,WMS等多个进程都是由Systemserver进程fork出来的,SystemServer包含了startBootstrapServices(),startCoreServices(),startOtherServices()创建服务的方法:

Application层
zygote孵化的第一个进程是launcher进程,也就是桌面进程,在fork出Launcher进程后,AMS会向Surfaceflinger请求结束掉开机动画,同时显示桌面程序,这样就完成了系统界面的加载与显示

Application层
zygote孵化的第一个进程是launcher进程,也就是桌面进程,在fork出Launcher进程后,AMS会向Surfaceflinger请求结束掉开机动画,同时显示桌面程序,这样就完成了系统界面的加载与显示


http://www.lryc.cn/news/304361.html

相关文章:

  • Flask——基于python完整实现客户端和服务器后端流式请求及响应
  • crmeb多门店商城系统二次开发 增加车辆车牌搜索功能、车辆公里数
  • 深度好文|关于人类智能与自主系统
  • 防火墙内容安全笔记
  • 应用于温度报警器中的高精度温度传感芯片
  • 微信小程序swiper 视频中间大,两边小,轮播滑到中间视频自动播放组件教程
  • ARM服务器上部署zookeeper集群
  • 利用Ubuntu22.04启动U盘对电脑磁盘进行格式化
  • Nginx基础入门
  • 分布式和微服务
  • 【无标题】学习Markdown
  • 由于 vscode 版本更新为 1.86.1引起的相关问题。
  • 四、矩阵的分类
  • Windows环境下查看磁盘层级占用空间的解决方案
  • 超级实用的python代码片段汇总和详细解析(16个)
  • npm/nodejs安装、切换源
  • 【Kotlin】流程控制
  • Devc++ Easyx 实现 瓦片地图编辑数据导入游戏
  • 去年面试的运维开发面试题二
  • 【Unity编辑器扩展】Unity编辑器主题颜色设置工具
  • 精美的WordPress外贸独立站模板
  • 说一下 JVM 运行时数据区 ?
  • 外泌体相关基因肝癌临床模型预测——2-3分纯生信文章复现——02.数据格式整理(1)
  • Python 内存管理和优化之循环引用
  • 「Kafka」监控、集成篇
  • Linux之用户和用户组用户账号系统文件
  • ESP8266 (5),驱动屏幕
  • ChatGPT-01 用ChatGPT指令,自学任何领域的系统知识
  • android studio模拟器不能打开
  • 设计模式学习笔记 - 面向对象 - 5.接口和抽象类的区别