Android系统架构简介

作者: b923228cc7b5 | 来源:发表于2017-01-20 18:26 被阅读1629次

Android采用分层的架构,分为四层,从高层到底层分为应用程序层(app+System apps),应用程序框架层(Java API Framework),系统运行库和运行环境层(Libraries + android Runtime)和Linux核心层(HAL+ Linux Kernel),如下图所示:


Android平台示意图

还有一张中文简化版的分层图如下:


Android分层图

1. Linux核心层

linux内核(Linux Kernel)

Android平台的基础,直接和硬件打交道。硬件驱动、进程管理、内存管理、网络管理的功能在这里实现。

硬件抽象层(Hardware Abstraction Layer)

为上层的Java API Framework提供相关硬件的界面显示,Audio,Bluetooth等是组成硬件抽象层的库模块,实现每个硬件的界面显示功能。

2. 系统运行库和运行环境层

Android 运行环境(Android Runtime)

Android 5.0(API 21)之前使用的是Dalvik虚拟机,之后被ART所取代。
ART是Android操作系统的运行环境,通过运行虚拟机来执行dex文件。其中,dex文件是专为安卓设计的的字节码格式,好处多多,不再赘述。Android toolchain(一种编译工具)可以将Java代码编译为dex字节码格式,过程如下图,jack是一种编译工具链(tool chain)


Java代码编译为dex代码

为了便于理解,做个类比,我们都知道,java程序的运行需要java的核心包的支持,然后通过JVM虚拟机来运行我们的应用程序。在Android中,Android程序的运行需要core Libararies的支持,然后通过ART或者Dalvik来运行该程序。

原生C/C++ 库(Native c/c++ Libraries)

上面提到的ART就依赖于C/C++库。开发者可以通过调用Java API Framework来使用原生库的功能,也可以用Android NDK直接调用原生库。

3. 应用程序框架层

java API Framework

我们最常用的组件和服务都在这一层,也是每一个安卓开发者必须要熟悉的一层,

4. Application层

系统应用(system apps)

可以理解为内置在Android系统的app,我们可以像调用Java API Framework层一样直接调用系统app。

我们也可以自己编写System app,但是要注意系统应用的权限比较特殊,直接写在manifest里面是不行的。需要做特别的处理,参考http://www.programgo.com/article/76213742299/

因此,app开发主要研究Java API Framework层和应用程序层即可,如果有用到JNI,还需要研究一下Native c/c++ Libraries。但是Android运行库和Android运行时主要是从事系统开发的人员需要研究的。把握全局的同时,也要搞清楚重点,毕竟,术业有专攻。·

相关文章

  • 搭建Android开发环境

    一、Android系统架构 1.Android系统简介 Android是由Andy Rubin开发的基于Linux...

  • Android笔记——快速入门

    1.0Android简介 1.1Android系统结构 Android大致可以分为4层架构:Linux内核层、系统...

  • Android Input架构

    Android Input架构 Linux Input子系统简介 Android 是基于Linux 内核,Linu...

  • Android系统架构简介

    Android采用分层的架构,分为四层,从高层到底层分为应用程序层(app+System apps),应用程序框架...

  • 第一章 Android简介

    1.1android王国的简介 1.1.1 andorid的系统架构 1.1.2 android已经发布的版本

  • 喜闻乐见之Android简介

    本文主要是对Android系统做一个简介,包括其架构、启动流程、沙箱机制、APK、Darlvik以及ART。 架构...

  • Android系统的启动

    本文用于记录Android系统相关知识点。主要是文字总结~ 一、Android系统架构 Android系统架构分为...

  • Android面试题整理(一)

    1.Android系统的架构 Android采用层次化系统架构,官方公布的标准架构如下图所示。Android由底层...

  • Android 面试

    Android 基础 Android 系统架构安卓系统架构 Applications:应用程序 Applicati...

  • Android面试基础题总结二

    Android性能优化(高级) 简述Android的系统架构?android的系统架构从下往上分为Linux内核层...

网友评论

    本文标题:Android系统架构简介

    本文链接:https://www.haomeiwen.com/subject/ycnwbttx.html