android系统启动过程(1)

android系统启动过程(1)

ID:11692652

大小:871.00 KB

页数:9页

时间:2018-07-13

android系统启动过程(1)_第1页
android系统启动过程(1)_第2页
android系统启动过程(1)_第3页
android系统启动过程(1)_第4页
android系统启动过程(1)_第5页
资源描述:

《android系统启动过程(1)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、1Android系统的启动过程1.1启动过程Android系统完整的启动过程,可分为Linux系统层、Android系统服务层、Zygote进程模型三个阶段,从开机到启动HomeLauncher完成具体的任务细节可分为七个步骤。1.启动BootLoader2.加载系统内核3.启动Init和其它重要守护进程4.启动Zygote进程5.启动Runtime进程,初始化ServiceManager。ServiceManager用于binder通讯,负责绑定服务的注册与查找。6.启动SystemService7.启动HomeLaucher8.启动其它应用程序1.1.1BootLoader

2、Android系统是基于Linux操作系统的,所以它最初的启动过程和Linux一样。当设备通电后首先执行BootLoader引导装载器,BootLoader是在操作系统内核运行之前运行的一段小程序。通过这段小程序初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境引导进入合适的状态,以便为最终调用操作系统内核准备好正确的运行环境。1.1.2启动Init和守护进程当系统内核加载完成之后,会首先启动Init守护进程,它是内核启动的第一个用户级进程,进程号永远是1。当Init进程启动后,如(图11)它还负责启动其他的一些重要守护进程,主要包括:Usbd进程(USBDaemon

3、):USB连接后台进程,负责管理USB连接。adbd进程(AndroidDebugBridgeDaemon):ADB连接后台进程,负责管理ADB连接。debuggerd进程(DebuggerDaemon):调试器后台进程,负责管理调试请求及调试过程。rild进程(RadioInterfaceLayerDaemon):无线接口层后台进程,负责管理无线通信服务。图11Init和其它重要守护进程的启动,图片来源:http://www-igm.univ-mlv.fr/~dr/XPOSE2008/android/fonct.html1.1.1启动Zygote进程如(图12)所示,当I

4、nit进程和一些重要的守护进程启动完成之后,将启动Zygote进程。Zygote进程在系统运行期间,当接收到创建虚拟机请求时,将孵化DalvikVM实例。图12Zygote进程的启动Zygote进程启动后,首先初始化一个DalvikVM实例,然后为它加载资源与系统共享库,并开启Socket监听服务,当收到创建DalvikVM实例请求时,会通过COW(copyonwrite)技术最大程度地复用自己,生成一个新的DalvikVM实例。DalvikVM实例的创建方法基于linux系统的fork原理。Zygote进程孵化DalvikVM实例流程如(图13)所示:图13Zygote

5、进程孵化DalvikVM实例流程1.1.2启动Runtime进程和初始化ServiceManager当Zygote进程启动完成之后,Init进程会启动Runtime进程。Runtime进程首先初始化服务管理器(ServiceManager),并把它注册为绑定服务(Binderservices)的默认上下文管理器,负责绑定服务的注册与查找。图14Runtime进程启动过程1.1.1启动系统服务当Runtime进程启动ServiceManager后,将会启动SystemService。SystemService的启动流程如下所示:1)如(图15)所示,Runtime进程向Zyg

6、ote进程发送启动系统服务(SystemService)的请求,Zygote进程收到请求后,会“孵化”出一个新的DalvikVM实例并启动系统服务进程。2)如(图16)所示,SystemService首先启动两个本地服务(由C或C++编写的native服务):SurfaceFlinger和AudioFlinger。这两个本地系统服务向服务管理器注册成为IPC服务对象,以便在需要它们的时候很容易查找到。3)如(图17所示),SystemService然后启动一些Java层的Android系统管理服务,包括硬件服务和系统框架核心平台服务,并将它们注册成IPC服务对象。这些服务启

7、动的代码位于SystemServer.java的run函数当中。4)当SystemService加载完所有的系统服务后就意味着系统就准备好了,整个系统的进程图如(图18)。然后SystemService会向所有服务发送一个系统准备完毕(systemready)的广播消息。图15SystemServer启动过程图16AndroidNativeSystemservice的启动图17Androidmanagedservices的启动图18系统准备完毕1.1.1启动Launcher如(图1

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。