Android系统框架和开机流程

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



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值