> 文章列表 > cm-14.1 Android系统启动过程分析(3) - Android系统启动流程概述

cm-14.1 Android系统启动过程分析(3) - Android系统启动流程概述

cm-14.1 Android系统启动过程分析(3) - Android系统启动流程概述

声明

  • 前阶段在项目中涉及到了Android系统定制任务,Android系统定制前提要知道Android系统是如何启动的。
  • 本文参考了一些书籍的若干章节,比如《Android进阶解密-第2章-Android系统启动》、《深入理解Android虚拟机-第8/9/10章-init进程详解/Dalvik VM的进程系统/Dalvik VM运作流程详解》、《深入理解Android系统-第6/7/8章-init启动进程详解/Zygote进程详解/System进程详解》等
  • 本文使用的代码是LineageOS的cm-14.1,对应Android 7.1.2,可以参考我的另一篇博客:如何下载Nexus5的LineageOS14.1(cm-14.1)系统源码并编译、刷机
  • 很多代码注释待详细写

0 写在前面的

  当我们提到Android系统时,你脑海里会浮现哪些概念呢?不如在此凭感觉随便写几个:
四大组件+Intent、SystemServer服务、Zygote、Dalvik/ART、JNI、servicemanager、Bionic、HAL、Native服务、Init、BootLoader、Binder、Ashmem等等。

1. Android与Linux在架构上的区别

  Android是架构在Linux之上的,但也对它做了大量的修改一-其中包括部分地打破了 Linux主流版本间的兼容性。Android 内核源码树大概是在2.6.27版本中从Linux内核主线上分离出来的,但到了Android 3.3又开始回归Lin