安卓启动流程

1 启动流程概述

Android 启动流程跟 Linux 启动类似,大致分为如下五个阶段。

  • 1.开机上电,加载固化的ROM
  • 2.加载BootLoader,拉起Android OS
  • 3.加载Uboot,初始外设,引导Kernel启动等。
  • 4.启动Kernel,加载驱动,硬件。
  • 5.启动Android,挂载分区,加载驱动、服务,init 进程等。

2. 了解安卓Runtime 运行时

Android5.0(API 21)以上,每个应用都运行在自己的进程中,有其自己的Android Runtime(ART)实例,ART编写为通过执行Dex文件在低内存设备上运行多个虚拟机,Dex文件是一种专为Android设计的字节码格式,经过优化使用的内存很少。编译工具链(例如Jack)将Java源代码编译为Dex字节码,使其可在Android平台上运行。

ART的部分主要功能包括:

  • 预先(AOT)和即时(JIT)编译

  • 优化的垃圾回收(GC)

  • Android 9(API 28)及更高版本的系统中,支持将应用软件包中的Dalvik Executable格式(Dex)文件转化为更紧凑的机器代码。

  • 更好的调试支持,包括专用采样分析器、详细的诊断异常和崩溃报告,并且能够设置观察点以监控特定字段。

在5.0之前,Dalvik是Android Runtime。如果您的应用在ART上运行效果很好,那么它应该也可在Dalvik上运行,但反过来不一定。 Android还包含一套核心运行时库,可提供Java API框架所使用的Java编程中年的大部分功能,包括一些Java8语言功能。

3.Android启动的大概流程

从开机到桌面的过程为:

BootloaderKernelInit进程ZygoteSystemServerServiceManagerHome Launcher

  Android服务包括系统服务和应用服务,系统服务是指Android系统在启动过程就已经启动实现了的服务,对于系统服务又分为Java服务和本地服务,Java服务是由Java代码编写而成,由SystemServer进程提供,而本地服务是由C/C++实现的服务,由Init进程在系统启动时启动的服务。应用服务是由开发者自行实现的某些特定服务。

1) Bootloader

手机中的ROM 和 RAM 分别对应电脑的硬盘和内存, 内存负责程序的运行以及数据交换 有了它 电脑中的软件才能运行;

而硬盘就是一块存储空间 它可以存储各种各样的文件 包括视频 、 照片 、音乐 、 软件等

Boot Rom: 当长按开机键的时候,引导芯片开始从固化在ROM的预设代码开始执行。然后加载引导程序到RAM。

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值