源码查看工具:Source Insight
参考:Android系统启动流程
   Android应用程序启动过程源代码分析
   Android 7.0 ActivityManagerService(2) 启动Activity的过程:一

Bootloader引导和Linux Kernel启动

  • Bootloader引导
  • 路径:bootable/bootloader/*
  • 加电后,CPU先执行bootloader引导程序,正常启动系统,加载boot.img到RAM,然后执行,boot.img中包含内核。
  • 引导程序是在Android操作系统开始运行前的一个小程序。引导程序是运行的第一个程序,因此它是针对特定的主板与芯片的,不是Android操作系统的一部分。引导程序是OEM厂商或者运营商加锁和限制的地方。
  • 引导程序分两个阶段执行。第一个阶段,检测外部的RAM及加载对第二阶段有用的程序;第二阶段,引导程序设置网络、内存等。这些对于运行内核是必要的,为了达到特殊的目标,引导程序可以根据配置参数或者输入数据设置内核。
  • Linux Kernel启动
  • 路径:kernel/*
  • 由bootloader加载kernel,kernel经自解压、初始化、载入built-in驱动程序,完成启动。Kernel启动后会创建若干内核线程(kernel thread),之后装入并执行程序/sbin/init/,载入init process,切换至user- space。

三、Android启动
Android从Linux系统启动有4个步骤:

  1. init进程启动 ramdisk.so
  2. Native服务启动
  3. System Server,Android服务启动
  4. Home启动

更多相关文章

  1. Android中帧动画在Activity启动时自动运行的几种方式
  2. Android(安卓)8.0 Activity启动过程分析
  3. android adb和串口调试.
  4. android在fc8上内核编译笔记
  5. android 启动Activity的四种模式
  6. Java + TestNG + Appium 实现单机多个Android终端并发测试
  7. Android(安卓)清单文件属性大全
  8. android 动态调试笔记
  9. Android×××方法详解

随机推荐

  1. Android 升级ADT后,NoClassDefFoundError
  2. Android,使用Intent或Bundle传递参数,跳转
  3. android之uniapp原生打包
  4. Android 判断app是否正在播放音乐
  5. Android:自定义ImageView展示大图中的指定
  6. Android点击按钮隐藏或者打开软键盘
  7. Android Profile+MAT解决内存泄漏
  8. 读取联系人信息
  9. Android Bitmap与byte[]之间的转换
  10. Android学习(十) SQLite 基于SQLiteOpenHel