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

Android系统启动流程全解析--你知道Android系统启动都干了啥吗

写了这么久的Android应用程序,是时候来八一八Android程序的启动原理了,文章不长,喜欢的朋友点个收藏谢谢。

只要是Android系统,运行的第一个程序一定是引导程序,可以这么说,所有的unix系统都有引导加载程序。这个引导加载程序的作用是在在加载 Linux 内核之前进行低级(底层)系统初始化。

Android系统启动的第一阶段是将recovery镜像加载到系统flash里(就是我们的固定内存Rom),这也是引导程序的主要功能。

引导程序会检测手机按键(实体按键,刷机的小伙伴不陌生,recovery模式下有些不能用触屏,要使用方向键和关机键配合操作),我们可以用这些案件切换功能和模式,比如快速启动或实现某个功能,比如重新刷写镜像,下载和执行内核image。

在这里插入图片描述
最终的效果就是会把内核加载到RAM中(这里通常是/boot flash分区中的内核)。

Linux内核
在这里插入图片描述

内核在启动构建Android的用户空间程序和应用程序之前,会完成大部分硬件,驱动程序和文件系统的初始化,只要包括:

  • 核心内核初始化(内存和I/O区初始化,中断启动,进程表初始化)
  • 驱动程序初始化
  • 挂载/

相关文章:

  • openGl绘制五星红旗
  • 【数据结构】二叉树
  • HTML常用标签二
  • 高数(下) 第十二章:无穷级数
  • 【GOF】三种工厂模式~
  • 算法 |【实验5.2】1-深度优先搜索暴力求解旅行商问题
  • OpenCV-Python学习(2)—— OpenCV 图像的读取和显示
  • Unity技术手册-初识编辑器(上)
  • 基于Java+SpringBoot+vue+elementui图书商城系统设计实现
  • 电子病历结构化之实体识别(附完整项目代码)
  • 手写Spring——bean的扫描、加载和实例化
  • 【Vue】Vue的v-if、v-if-else、v-else-if、v-show的使用
  • 【设计模式】创建型模式:单例模式
  • Sentry、Loki 轻量级日志系统部署及应用
  • Spring Boot 统一功能处理
  • 10个最佳ES6特性 ES7与ES8的特性
  • CSS魔法堂:Absolute Positioning就这个样
  • JavaScript 基本功--面试宝典
  • Linux编程学习笔记 | Linux IO学习[1] - 文件IO
  • mysql 5.6 原生Online DDL解析
  • PHP变量
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • SQL 难点解决:记录的引用
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 从0到1:PostCSS 插件开发最佳实践
  • 反思总结然后整装待发
  • 分布式事物理论与实践
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • ------- 计算机网络基础
  • 聊一聊前端的监控
  • 前端攻城师
  • 前嗅ForeSpider采集配置界面介绍
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 微服务入门【系列视频课程】
  • 阿里云API、SDK和CLI应用实践方案
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (第一天)包装对象、作用域、创建对象
  • (分享)一个图片添加水印的小demo的页面,可自定义样式
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • (转)我也是一只IT小小鸟
  • . NET自动找可写目录
  • .bat批处理(九):替换带有等号=的字符串的子串
  • .Mobi域名介绍
  • .NET Core工程编译事件$(TargetDir)变量为空引发的思考
  • .NET MVC第五章、模型绑定获取表单数据
  • .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法)
  • @EnableWebMvc介绍和使用详细demo
  • @Not - Empty-Null-Blank
  • [<事务专题>]