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级别
馅饼 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
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,451评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,172评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,782评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,709评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,733评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,578评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,320评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,241评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,686评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,878评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,992评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,715评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,336评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,912评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,040评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,173评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,947评论 2 355

推荐阅读更多精彩内容