Andorid开机启动流程

开机时序图

按下电源键开机到系统启动的流程图
在这里插入图片描述

开机时序详解

  • boot rom 主要作用是加载 boot loader 进入内存并执行,boot rom 一般固化在芯片上,设备启动加电自检后从固定的地址开始执行。
  • boot loader 分2步执行,boot rom只加载了第一部分bootloader代码进入内存,这部分代码随即加载第二部分bootloader代码,第二部分是核心,它完成了必要的环境准备后,开始加载内核。
  • 启动完Linux内核后,会加载各种驱动和数据结构,当有了驱动以后,开始启动Android系统,同时会加载用户级别的第一个进程init(system\core\init.c),该进程会首先加载一个init.rc配置文件。
  • init.rc配置文件会进行很多的配置,创建很多的文件夹及文件,然后初始化一些Android驱动器,之后该配置文件最重要的一个任务就是启动一个Zygote(孵化器)进程,此进程是Android系统的一个母进程,用来启动Android的其他服务进程。
  • Zygote会执行一个app_process可执行文件,在这个文件中首先添加了Android运行时环境,在Android运行时中调用了ZygoteInit.java。
  • 在ZytofeInit.java代码中首先设置了Java虚拟机的堆内存空间,然后启动一个类加载器加载Android启动依赖的类比如Activity等四大组件,dialog等UI的类,然后分出一个子进程启动SystemServer系统服务。
  • SystemServer进程主要用于创建系统服务,我们熟知的AMS、WMS、PMS都是由它来创建的。

常用调试工具

可用bootchart生成的开机时序图获取整体开机过程,分析耗时部分,进一步分析原因。

ubuntu上安装软件{执行sudo apt-get install bootchart pybootchartgui librsvg2-bin}
使用bootchart bootchart.tgz,生成bootchart.png图表

bootchart ./bootchart.tgz 

生成后的png图片如下所示:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值