Android系统框架和开机流程

一、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中。



你可能感兴趣的:(Android,Framework开发)