博客
关于我
【安卓开发系列 -- 系统分析】Framework -- Android 系统一般启动流程简介
阅读量:371 次
发布时间:2019-03-04

本文共 1167 字,大约阅读时间需要 3 分钟。

【安卓开发系列 -- 系统分析】Framework -- Android 系统一般启动流程简介

【1】Android 系统的整体启动流程

概述:Loader > Kernel > Native > Framework > Application

细分:BootRom > Bootloader > Kernel > Init > Zygote > SystemServer > Launcher

Loader 层主要包括      : Boot Rom 和 Boot LoaderKernel 层主要包括      : Android 内核层Native 层主要是包括    : init 进程以及其 fork 出来的用户空间的守护进程、HAL 层、开机动画等Framework 层主要包括   : AMS 和 PMS 等 Service 的初始化Application 层主要包括 : SystemUI、Launcher 的启动

整体的启动流程图 

Bootloader 引导程序的作用,初始化硬件设备,加载内核文件;

阶段一,汇编编写,初始化基本硬件;阶段二,C语言实现,初始化 Flash 设备,设置网络、内存等,将 kernel 映像和根文件系统映像从 Flash 上读到 RAM 空间中,加快内核启动速度;

Linux 内核启动,初始化各种软硬件环境,加载驱动程序,挂载根文件系统等,内核启动完成后,会启动 init 进程从而进入 Android 系统的启动阶段;

init 进程, Linux 系统中用户空间的第一个进程,进程号为 1,可以视为其他所有进程的父进程,init 进程主要功能有 1). 文件系统;2). 提供属性服务;3). 解析 init.rc 脚本;4). 创建 Zygote 进程等;

Zygote 进程,创建 Android 中的应用进程,是 Android 系统所有应用(JAVA 进程)的父进程;

SystemServer 进程,主要的作用是启动各种系统服务,如 ActivityManagerService,PackageManagerService,WindowManagerService 以及硬件相关的服务,应用程序通过与 SystemServer 进程通讯,获取各种服务对象的句柄,从而执行相应的操作达到使用各种系统服务的目的;

Launcher,Android 启动的第一个应用程序,即桌面程序,可以通过 Launcher 启动其他的应用程序;

参考与致谢

本博客为博主学习笔记,同时参考了网上众博主的博文以及相关专业书籍,在此表示感谢,本文若存在不足之处,请批评指正。

【1】Android 系统源代码情景分析

【2】深入理解 Android 卷 II

【3】

【4】

【5】

【6】

转载地址:http://gvmr.baihongyu.com/

你可能感兴趣的文章
Mysql学习总结(41)——MySql数据库基本语句再体会
查看>>
Mysql学习总结(42)——MySql常用脚本大全
查看>>
Mysql学习总结(43)——MySQL主从复制详细配置
查看>>
Mysql学习总结(44)——Linux下如何实现mysql数据库每天自动备份定时备份
查看>>
Mysql学习总结(45)——Mysql视图和事务
查看>>
Mysql学习总结(46)——8种常被忽视的SQL错误用法
查看>>
Mysql学习总结(48)——MySql的日志与备份还原
查看>>
Mysql学习总结(49)——从开发规范、选型、拆分到减压
查看>>
Mysql学习总结(4)——MySql基础知识、存储引擎与常用数据类型
查看>>
Mysql学习总结(50)——Oracle,mysql和SQL Server的区别
查看>>
Mysql学习总结(51)——Linux主机Mysql数据库自动备份
查看>>
Mysql学习总结(52)——最全面的MySQL 索引详解
查看>>
Mysql学习总结(53)——使用MySql开发的Java开发者规范
查看>>
Mysql学习总结(54)——MySQL 集群常用的几种高可用架构方案
查看>>
Mysql学习总结(55)——MySQL 语句大全再温习
查看>>
Mysql学习总结(56)——MySQL用户管理和权限设置
查看>>
Mysql学习总结(57)——MySQL查询当天、本周、本月、上周、本周、上月、距离当前现在6个月数据
查看>>
Mysql学习总结(58)——深入理解Mysql的四种隔离级别
查看>>
Mysql学习总结(59)——数据库分库分表策略总结
查看>>
Mysql学习总结(5)——MySql常用函数大全讲解
查看>>