Android系统框架和开机流程
16lz
2021-01-23
一、Android系统框架
android系统采用软件堆叠(software stack)的架构,主要由操作系统、中间件、核心应用程序组成。得益于android为应用开发者提供了一套定义良好的软件框架,开发者即使不具备特别高深的专业知识,也能在短时间内开发出强大的android应用程序。上图是android系统框架图,android采用分层架构,分成了4个层,从上到下分别为:应用程序层、framework层、系统运行库层、Linux内核层。蓝色的代表java程序,黄色的代码为运行JAVA程序而实现的虚拟机,绿色部分为C/C++语言编写的程序库,红色的代码内核(linux内核+driver)。android应用程序运行在framework层上,应用开发者借助android sdk调用android framework层提供的API。
二、Android启动流程
本文主要关注系统运行库层和framework层,android启动流程图如下所示: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 Property System | Android属性系统(文章写的很好。)
- ANDROID音频系统散记之一:A2dpAudioInterface && Android Audio S
- Android系统启动流程(3) —— 解析SystemServer进程启动过程
- Android 文件系统及权限修改
- Android 图形系统剖析
- Android磁盘管理-系统源码分析(1)
- Android 系统概要 ——《第一行代码 Android》
- Android进程间通信(一):AIDL使用详解
- 第二讲:Android系统构架分析和应用程序目录结构分析