Android的初始化流程

android系统在启动时首先会启动Linux基础系统,然后引导加载LinuxKernel并启动初始化进程。

即:linuxkernel ->Init

接着,启动Linux守护进程(daemons)。这个过程需要启动以下内容:

1、启动USB守护进程(usbd)来管理USB连接。

2、启动AndroidDebug Bridge 守护进程(adbd)来管理adb连接

3、启动Debug守护进程(debuggered)来管理调试进程的请求(包括内存转换等)

4、启动无线接口守护进程(rild)来管理无线通信。


在启动Linux守护进程的同时,还需要启动Zygote进程,他主要包括以下需要启动和注册的内容:

1、初始化一个Dalvik虚拟机实例

2、装载Socket请求所需的类和监听。

3、创建虚拟机实例来管理应用程序的进程。

再接着,需要初始化runtime进程,需要处理以下操作:

1、初始化服务管理器

2、注册服务管理器,以它作为默认的Binder服务的Context管理器。

runtime进程初始化之后,runtime进程将发送一个请求到Zygote,开始启动系统服务,这时,Zygote将为系统服务进程建立一个虚拟机实例,并启动系统服务。

紧接着,系统服务将启动原生系统服务,主要包括SurfaceFlinger Audioflinger.这些本地系统服务将注册到服务管理器(ServiceManager)作为IPC服务的目标。

系统服务将启动Android管理服务,Android管理服务将都注册到服务管理器上。包括ActivityManagerPackageManager等。

最后,当加载完系统服务,等待应用运行,每个应用都在一个独立进程。系统首先启动了一个Home进程和Contacts进程。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值