博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android启动过程_大致流程
阅读量:4506 次
发布时间:2019-06-08

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

Android大致启动过程如图(基于O版本  使用draw.io画的)。

注:这是通过查询结合自己了解的,还有不少不明确的,后续有进展完善,欢迎指导。

说明:绿色是主要几个的阶段。其他围绕这几个阶段的重要过程。

启动过程(绿色的):

1.按下电源,引导芯片从预定义的地方(固化在ROM中),加载引导程序到RAM。

2.引导程序:BootLoader,Android内核启动前的程序,为内核运行提供必要的条件。a,检测外部的RAM以及加载对第二阶段有用的程序;b,引导程序设置网络、内存等。

3.内核:内核的启动后,设置缓存,受保护的内存,调度和加载驱动程序。 当内核完成系统设置时,它会在系统文件中查找“init”。

4.init进程:两个主要责任(1)挂在目录(2)运行init.rc脚本。

5.Zygote:虚拟器进程,预加载和初始化核心库。

Zygote会执行一个app_process可执行文件,在这个文件中首先添加了Android运行时环境,在Android运行时中调用了ZygoteInit.java,这就从c++代码跳到了java代码。

在ZytofeInit.java代码中首先设置了Java虚拟机的堆内存空间,然后启动一个类加载器加载Android启动依赖的类比如Activity等四大组件,dialog等UI的类,然后分出一个子进程启动SystemServer系统服务

6.系统服务:如电源管理器,电话注册,上下文管理器等。

7.引导完成:ACTION_BOOT_COMPLETED开机启动广播发出。

 

转载于:https://www.cnblogs.com/fanglongxiang/p/10690249.html

你可能感兴趣的文章
使用Vue-Router 2实现路由功能
查看>>
排序算法之归并排序(Merge Sort)
查看>>
libevent学习七(bufferevent)
查看>>
[BZOJ1603] [Usaco2008 Oct] 打谷机
查看>>
sublime-text3打造markdown编辑器
查看>>
how to install flash
查看>>
使用Callable、Future以及FutureTask进行线程操作
查看>>
LiberOJ#6178. 「美团 CodeM 初赛 Round B」景区路线规划 概率DP
查看>>
记一次微信支付走过的坑
查看>>
poj1273 Drainage Ditches 基础网络流
查看>>
iOS开发 私有变量 私有属性的使用选择
查看>>
hibernate.properties和hibernate.cfg.xml
查看>>
Hive任务优化--控制hive任务中的map数和reduce数
查看>>
mongodb添加管理员密码
查看>>
Django 之单个mysql表使用
查看>>
Enviroment for Oracle_home& Path
查看>>
IIS默认网址
查看>>
Arduino基本函数介绍
查看>>
Keil C51 的printf
查看>>
关于指针
查看>>