android系统结构和源码版本

作者: Lee_5566 | 来源:发表于2018-11-22 17:42 被阅读11次

    Android的系统架构采用了分层架构的思想,如图。从上层到底层共包括四层:
    1.应用层
    2.应用框架层
    3.系统库和Android虚拟机
    4.Linux内核

    image.png

    应用层

    Android的应用程序主要是用户界面(User Interface)方面的,通常以JAVA程序编写,其中还可以包含各种资源文件(放置在res目录中)JAVA程序及相关资源经过编译后,将生成一个APK包。

    Android本身提供了主屏幕(Home),联系人(Contact),电话(Phone),浏览器(Browers)等众多的核心应用。

    同时应用程序的开发者还可以使用应用程序框架层的API实现自己的程序。

    应用框架层

    Android的应用程序框架为应用程序层的开发者提供APIs,它实际上是一个应用程序的框架。

    系统库和Android虚拟机

    该层分为两部分:系统库和android虚拟机。

    系统库

    主要为C/C++库,这些库能被Android系统中不同的组件使用。它们通过 Android 应用程序框架为开发者提供服务。
    以下是一些核心库:

    • C库: 一个从 BSD 继承来的标准 C 系统函数库( libc ), 它是专门为基于 embedded linux 的设备定制的。
    • 媒体库: 基于 PacketVideo OpenCORE;该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。编码格式包括MPEG4, H.264, MP3, AAC, AMR, JPG, PNG 。
    • SGL: 2D图像引擎。
    • OpenGL ES: 该库可以使用硬件 3D加速(如果可用)或者使用高度优化的3D软加速。
    • 界面管理工具(Surface Management: 对显示子系统的管理,并且为多个应用程序提 供了2D和3D图层的无缝融合。
    • SQLite: 一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。
    • LibWebCore: 一个最新的web浏览器引擎用,支持Android浏览器和一个可嵌入的web视图。
    • FreeType: 图和矢量字体的功能。

    Android 的各种库一般是以系统中间件的形式提供的,它们均有的一个显著特点就是与移动设备的平台的应用密切相关。

    Android 运行环境主要指的虚拟机技术——Dalvik。Dalvik虚拟机和一般JAVA虚拟机(Java VM)不同,它执行的不是JAVA标准的字节码(bytecode )而是Dalvik可执行格式(.dex)中执行文件。在执行的过程中,每一个应用程序即一个进程(Linux的一个Process)。 二者最大的区别在于Java VM是以基于栈的虚拟机(Stack-based),而Dalvik是基于寄存器的虚拟机(Register-based)。显然,后者最大的好处在于可以根据硬件实现更大的优化,这更适合移动设备的特点。

    Linux内核

    Android 的核心系统服务依赖于 Linux 2.6 内核,如安全性,内存管理,进程管理, 网络协议栈和驱动模型。 Linux 内核也同时作为硬件和软件栈之间的抽象层。

    Android源码版本和代号

    代号 CodeName 版本 API级别
    馅饼 Pie 9 API 级别 28
    奥利奥 Oreo 8.1.0 API 级别 27
    奥利奥 Oreo 8.0.0 API 级别 26
    牛轧糖 Nougat 7.1 API 级别 25
    牛轧糖 Nougat 7.0 API 级别 24
    棉花糖 Marshmallow 6.0 API 级别 23
    棒棒糖 Lollipop 5.1 API 级别 22
    棒棒糖 Lollipop 5.0 API 级别 21
    奇巧 KitKat 4.4-4.4.4 API 级别 19
    果冻豆 Jelly Bean 4.3.x API 级别 18
    果冻豆 Jelly Bean 4.2.x API 级别 17
    果冻豆 Jelly Bean 4.1.x API 级别 16
    冰淇淋夹心 Ice Cream Sandwich 4.0.3-4.0.4 API 级别 15,NDK 8
    冰淇淋夹心 Ice Cream Sandwich 4.0.1-4.0.2 API 级别 14,NDK 7
    蜂窝 Honeycomb 3.2.x API 级别 13
    蜂窝 Honeycomb 3.1 API 级别 12,NDK 6
    蜂窝 Honeycomb 3.0 API 级别 11
    姜饼 Gingerbread 2.3.3-2.3.7 API 级别 10
    姜饼 Gingerbread 2.3-2.3.2 API 级别 9,NDK 5
    冻酸奶 Froyo 2.2.x API 级别 8,NDK 4
    松饼 Eclair 2.1 API 级别 7,NDK 3
    松饼 Eclair 2.0.1 API 级别 6
    松饼 Eclair 2.0 API 级别 5
    甜甜圈 Donut 1.6 API 级别 4,NDK 2
    纸杯蛋糕 Cupcake 1.5 API 级别 3,NDK 1
    (无代号) (无代号) 1.1 API 级别 2
    (无代号) (无代号) 1.0 API 级别 1

    相关文章

      网友评论

        本文标题:android系统结构和源码版本

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