一、Android系统框架

android系统采用软件堆叠(software stack)的架构,主要由操作系统、中间件、核心应用程序组成。得益于android为应用开发者提供了一套定义良好的软件框架,开发者即使不具备特别高深的专业知识,也能在短时间内开发出强大的android应用程序。

Android系统框架和开机流程_第1张图片

上图是android系统框架图,android采用分层架构,分成了4个层,从上到下分别为:应用程序层、framework层、系统运行库层、Linux内核层。蓝色的代表java程序,黄色的代码为运行JAVA程序而实现的虚拟机,绿色部分为C/C++语言编写的程序库,红色的代码内核(linux内核+driver)。android应用程序运行在framework层上,应用开发者借助android sdk调用android framework层提供的API。

二、Android启动流程

本文主要关注系统运行库层和framework层,android启动流程图如下所示:
Android系统框架和开机流程_第2张图片

1.Linux内核 Android是基于Linux内核的系统平台。Android启动时,首先启动bootloader,加载Linux内核,然后调用init进程。 2.init进程 init进程是内核启动的第一个用户态进程。init对各种设备进行初始化,运行android framework所需的各种守护进程(daemon)、Service Manager、Media Server、Zygote等。以下是init进程执行的daemon进程。 USB daemon:管理USB连接; Android Debug Bridge Daemon:管理adb连接; Radio Interface Layer Daemon(rild):管理无线通信连接; 3.Service Manager Service Manager是管理Android系统服务的重要进程。系统启动时,Android所有系统服务都要把各自的信息注册到Service Manager。 4.Media Server Media Server用于运行基于C/C++的本地系统服务,比如Camera等; 5.Zygote 在操作系统中存在一个全局监听创建新进程消息的监听进程,当它收到消息时,通知孵化进程进行孵化,Android中这个进程就是Zygote。每当执行Android应用程序时,Zygote就派生出一个虚拟机子进程来执行应用程序。 6.System Server System Server是android系统的一个核心进程,它是由Zygote进程创建。System Server进程中建立了Android的大部分服务,比如Activity Manager Service、Location Manager Service等,并且将这些服务注册到Service Manager中。



更多相关文章

  1. Android Property System | Android属性系统(文章写的很好。)
  2. ANDROID音频系统散记之一:A2dpAudioInterface && Android Audio S
  3. Android系统启动流程(3) —— 解析SystemServer进程启动过程
  4. Android 文件系统及权限修改
  5. Android 图形系统剖析
  6. Android磁盘管理-系统源码分析(1)
  7. Android 系统概要 ——《第一行代码 Android》
  8. Android进程间通信(一):AIDL使用详解
  9. 第二讲:Android系统构架分析和应用程序目录结构分析

随机推荐

  1. android关于installLocation
  2. 在Android中使用Handler和Thread线程执行
  3. Android(安卓)cts all pass 全攻略
  4. Android(安卓)USB 开发详解
  5. android中如何执行java命令
  6. Android(安卓)Drawable Resources系列5:
  7. 1、Android(安卓)Studio的安装及环境配置
  8. 学习:Android框架
  9. 跟雷军一起干,小米 Android(安卓)开发工程
  10. Android实例剖析笔记(二)