手记

android系统结构和源码版本

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级别
馅饼Pie9API 级别 28
奥利奥Oreo8.1.0API 级别 27
奥利奥Oreo8.0.0API 级别 26
牛轧糖Nougat7.1API 级别 25
牛轧糖Nougat7.0API 级别 24
棉花糖Marshmallow6.0API 级别 23
棒棒糖Lollipop5.1API 级别 22
棒棒糖Lollipop5.0API 级别 21
奇巧KitKat4.4-4.4.4API 级别 19
果冻豆Jelly Bean4.3.xAPI 级别 18
果冻豆Jelly Bean4.2.xAPI 级别 17
果冻豆Jelly Bean4.1.xAPI 级别 16
冰淇淋夹心Ice Cream Sandwich4.0.3-4.0.4API 级别 15,NDK 8
冰淇淋夹心Ice Cream Sandwich4.0.1-4.0.2API 级别 14,NDK 7
蜂窝Honeycomb3.2.xAPI 级别 13
蜂窝Honeycomb3.1API 级别 12,NDK 6
蜂窝Honeycomb3.0API 级别 11
姜饼Gingerbread2.3.3-2.3.7API 级别 10
姜饼Gingerbread2.3-2.3.2API 级别 9,NDK 5
冻酸奶Froyo2.2.xAPI 级别 8,NDK 4
松饼Eclair2.1API 级别 7,NDK 3
松饼Eclair2.0.1API 级别 6
松饼Eclair2.0API 级别 5
甜甜圈Donut1.6API 级别 4,NDK 2
纸杯蛋糕Cupcake1.5API 级别 3,NDK 1
(无代号)(无代号)1.1API 级别 2
(无代号)(无代号)1.0API 级别 1



作者:漫步_9378
链接:https://www.jianshu.com/p/6f4e349a14c2


0人推荐
随时随地看视频
慕课网APP