android actviity模糊,Framework启动过程浅析

浅显的总结一下Framework启动大概过程

总体

Android底层是linux系统,因而在开机时仍然是运行天字第一号进程inti,读取init.rc来创建第一个Dalvik进程zygote,下面是个Framework启动的整体图

7429c4d8ded6b4b0d9c4c9ea74661b44.png

1 、Init进程

Linux系统天字第一号进程,在我们眼中吊的飞起的Android系统在LInux中只不过是一个linux的一个应用程序而已,就通过启动一个用户级程序init的方式,完成引导进程。init始终是第一个进程.需要读取一下配置文件

Init.rc

Init.marvell.rc

然后进入创建zygote(受精卵)

2、zygote

第一个Dalvik虚拟机程序Zygote(受精卵),接下来所有的Dalvik虚拟机进程都是由它孵化出来,他创建时主要做了2件事

(1)Socket服务端:接受启动新的Dalvik进程的命令

(2)Framework共享类及共享资源:zygote进程启动后会装载一些共享的类和资源,这样新的Dalvik进程就不需要再次装载

然后就开始孵化第一个Dalvik进程SystemSever

e771c5dcc152141c11efc6d29de1d065.png

在zygote启动中时,为了便于理解将其总结为5个部分

03f746f1c74607306e34c5955a2b7c84.png

3、SystemSever

Android的所有服务循环框架都是建立SystemServer@(SystemServer.java)上。在SystemServer.java中看不到循环结构,只是可以看到建立了init2的实现函数,建立了一大堆服务,并AddService到service Manager。其中最重要的服务当属ActivityManagerSever(Ams),实在systemReady()调用后启动的,主要跟管理Activity启动相关,总结如下

81532ccf628565994bea91fb1dd7c263.png

4、启动Activity

AMS构造Activity对象放入mMainStack队列,则第一个运行的Actviity就是该Activity

版权声明:本文为博主原创文章,未经博主允许不得转载。

原文:http://blog.csdn.net/xsf50717/article/details/47167989

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值