Android系统框架组成

一、从架构理解Android系统组成

        从架构上看,Android系统自上而下由应用层、framework层、native层、硬件接口层以及Linux内核层组成。Android系统是基于Linux内核的。简单地说,framework层是应用层访问资源的软件接口,native层是软件层和硬件接口层交互的接口。整体架构图如下所示(图源网络)

 

二、从进程角度理解Android系统组成

从进程的启动来看,Android系统的启动过程是从boot loader引导开机开始的,随后依次启动kernel层、native层,在native层的初始化函数会创建一个名为zygote(孵化器)的进程,他是整个framework进程的父进程,当framework层需要创建新进程时都需要从zygeto创建(图源网络)。

 

三、Android系统架构各层及相关简介

1、Loader层

        Loader层有两个模块,boot rom在长按开机键后引导芯片从rom中的预设代码执行将引导程序加载到RAM中。Boot loader是启动系统前的引导程序,主要是检查RAM以及初始化硬件参数等。

2、Linux内核层

        Linux内核层是Android平台的内核基础。Linux内核的安全机制为Android提供相应安全保障,也允许设备制造商开发内核驱动(包括camera driver,display driver,input driver,binder driver)。

     Linux 内核的启动首先会启动swapper进程用于初始化进程管理、内存管理,加载Display,Camera Driver,Binder Driver等相关工作;随后启动kthreadd进程(pid=2):是Linux系统的内核进程,会创建内核工作线程kworkder,软中断线程ksoftirqd,thermal等内核守护进程。kthreadd进程是所有内核进程的鼻祖。

3、硬件抽象层

        硬件抽象层是将硬件功能抽象成接口方法的层,比如WIFI/蓝牙模块,当框架API请求访问设备硬件时,Android系统将为该硬件加载相应的库模块。

4、Android Runtime & 系统库(简称ART)

        在Android系统中,每个应用都运行在自己单独的进程中,每一个应用都有对应的虚拟机实例。ART通过运行dex文件来保证可以在一个系统中运行多个虚拟机实例。DEX文件是一种专为Android设计的字节码格式文件,经过优化,使用内存很少。ART主要功能包括:预先(AOT)和即时(JIT)编译,优化的垃圾回收(GC),以及调试相关的支持。

预先编译:指在运行前编译

即时编译:指边运行边编译

这里的Native系统库主要包括init孵化来的用户空间的守护进程、HAL层以及开机动画等。启动init进程(pid=1),是Linux系统的用户进程,init进程是所有用户进程的鼻祖

init进程孵化出Zygote进程,Zygote进程是Android系统的第一个Java进程(即虚拟机进程),Zygote是所有Java进程(framework进程)的父进程,Zygote进程本身是由init进程孵化而来的。

5、framework层

Framework主要是zygeto进程,system server进程,Midea server进程。

zygeto进程的工作主要包括

加载ZygoteInit类,注册Zygote Socket服务端套接字

·加载虚拟机

·提前加载类preloadClasses

·提前加载资源preloadResouces

System server进程:

        是由Zygote进程fork而来,System Server是Zygote孵化的第一个进程,System Server负责启动和管理整个Java层,ActivityManager,WindowManager,PackageManager,PowerManager等服务。

Media Server进程:

        是由init进程fork而来,负责启动和管理整个C++ framework,包含AudioFlinger,Camera Service等服务。

6、APP层

        Zygeto进程孵化的第一个APP进程就是launcher,这是用户看到的桌面APP。Zygeto进程还会创建Browser,Phone,Email等APP进程,每个APP至少运行在一个进程上,所有APP进程都是由Zygeto进程fork生成的。每个APP都是运行在一个虚拟容器上的,Android保证了可以同时运行多个虚拟容器。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值