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

总体

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

Framework启动过程浅析


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

Framework启动过程浅析

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

Framework启动过程浅析


3、SystemSever

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

Framework启动过程浅析

4、启动Activity

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


转载:http://blog.csdn.net/xsf50717/article/details/47167989

相关文章:

  • 2021-11-27
  • 2021-06-16
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-05-16
猜你喜欢
  • 2021-06-10
  • 2021-10-05
  • 2021-07-26
  • 2021-11-23
  • 2018-03-11
  • 2021-11-19
  • 2021-08-26
相关资源
相似解决方案