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\core\jni\server\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.这之后的事,应该就是进入系统了。(这部分没有调查过)。

更多相关文章

  1. Android(安卓)Binder------ServiceManager启动分析
  2. Android下setLatestEventInfo警告、Handler警告、SimpleDateForm
  3. Notification用法,注意API版本,API大于11的setLatestEventInfo()方
  4. Android(安卓)studio 点击按钮跳转到新的Activity
  5. Android下intent的setdata、settype和setdataandtype函数
  6. Android(安卓)4.3 隐藏功能 App Ops 分析
  7. C基础—函数指针,联合体,枚举,结构体和结构体指针
  8. Android(安卓)MediaPlayer 分析- MediaPlayerService.cpp
  9. 箭头函数的基础使用

随机推荐

  1. Android线程间的通信
  2. 对于Android DEX文件详细说明
  3. 基于Android Studio的Android第一个软件-
  4. Android Sensor详解(8)sensor hal层分析第
  5. Android[中级教程]第五章 XML解析之PULL
  6. Android通知示例(一)
  7. Android传感器概述(七)
  8. Android Scroll详解(一):基础知识
  9. Mio要推Android汽车导航装置
  10. Android 必须知道2018年流行的框架库及开