Android 启动过程

转:http://blog.sina.com.cn/s/blog_6ce2038b0100mc6u.html

 

1. Boot 系统初始化, 具体过程参见 (system/core/init/Init.c) 中的 main 函数,这时候,手机或者模拟器出现的画面是一个 console ,显示 “ANDROID”msg

 

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

 

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

 

4. Java 虚拟机启动成功后,开始系统初始化。系统初始的第一步是用 JNI 方式实现的,对应 java 代码为 (frameworks/base/services/java/com/android/server/SystemServer.java) init1 Native )函数,对应的 JNI C++ 代码为 (frameworks/base/ services /jni/com_android_server_SystemServer.cpp) ,而实现的 C++ 代码为

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

 

5. system_init 调用 SurfaceFlinger SurfaceFlinger readyToRun() 函数用 BootAnimation 来实现开机动画,这时候手机或者模拟器显示是一副背景图加一个动态的小机器人。

 

6. 系统初始化的第二步,将启动 ServerThread 进程,参见 SystemServer.init2() ServerThread 将启动各种系统服务,如 Power Manager Activity Manager 等等,具体参见 ServerThread run 函数, ServerThread 同在 SystemServer.java 中。

 

7. 这之后的事,应该就是进入系统了。(这部分没有调查过)。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值