Android 启动过程

1.Boot系统初始化,(system/core/init/Init.c)中的main(),这时候手机或者模拟器出现console,显示“ANDROID”

2.初始化成功后,就开始mounting系统,具体参见system/core/mountd/Mountd.c中的main()

3.接下来运行androidRuntime,并开始启动java虚拟机dalvikvm

4.Java虚拟机启动成功后,开始初始化。系统初始化的第一步是用JNI方式实现的,对应java类为

frameworks/base/services/java/com/android/server/SystemServer.java中的init1(Native)函数,对应的JNI C++代码为

frameworks/base/cmds/system_server/library/System_init.cpp中的system_init()

5.system_init调用SurfaceFlinger,SurfaceFlinger的readyToRun()用BootAnimation来实现开机动画,

这时候手机或者模拟器显示是一副背景图加一个动态小机器人

6.系统初始化的第二步,将启动ServerThead进程,参见SystemServer.init2()

ServerThread将启动各种系统服务,如Power Manager,Activity Manager等等,具体参见ServerThread的run(),ServerThread同在SystemServer.java中



你可能感兴趣的:(Android 启动过程)