操作系统的启动流程
- 读取引导文件
引导文件为存放在硬盘0磁道位置的文本文件 - 根据引导文件加载操作系统的内核
Android的启动流程
- Android的内核 , 基于Linux 2.6.x
- 根据引导文件加载Linux内核, 内核开始运行
- 加载驱动文件与数据结构
3. 加载用户级别的第一个进程(Android的应用层信息):
init.c(/system/core/init)
在其中创建目录, 挂载目录 , 读取配置信息等
4. 读取/system/core/rootdir/init.rc , 并在其中读取配置文件
在其中创建各种目录 ,启动各种服务
5. /system/bin/app_precess/App_main.cpp
启动java层的第一个服务: com.android.internal.os.ZygoteInit , 在进程中读取配置信息 , 加载类文件 , 月1.8k个 , 用循环的方式Class.loadClass()
6. startSystemServer系统服务
- 通过Jni进入SystemServer.cpp的init1()方法 , 该方法调用SystemInit.cpp的方法 ,在回到java层 , 调用init2()方法启动了ServerThread服务 . 在JNI中启动了各种硬件.
7. 线程启动了ActivityManagerService的systemReady()方法 , 在其中调用resumeTopActivityLocked() , 启动了待机画面

网友评论