Android操作系统架构

 
Android操作系统整体应用架构

  • Android系统架构和一些普遍的操作系统差不多,都是采用了分层的架构,从他们之间的架构图看,Android系统架构分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层。
    • 1.应用程序

      Android会同一系列核心应用程序包一起发布,该应用程序包包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA语言编写的。

      2.应用程序框架

      开发人员也可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。同样,该应用程序重用机制也使用户可以方便的替换程序组件。

      隐藏在每个应用后面的是一系列的服务和系统, 其中包括;

      ◆丰富而又可扩展的视图(Views),可以用来构建应用程序, 它包括列表(lists),网格(grids),文本框(text boxes),按钮(buttons), 甚至可嵌入的web浏览器。

      ◆内容提供器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库), 或者共享它们自己的数据

      ◆资源管理器(Resource Manager)提供 非代码资源的访问,如本地字符串,图形,和布局文件( layout files )。

      ◆通知管理器 (Notification Manager) 使得应用程序可以在状态栏中显示自定义的提示信息。

      ◆活动管理器( Activity Manager) 用来管理应用程序生命周期并提供常用的导航回退功能。

      有关更多的细节和怎样从头写一个应用程序,请参考 如何编写一个 Android 应用程序.

      3.系统运行库

      1)程序库

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

      ◆系统 C 库 - 一个从 BSD 继承来的标准 C 系统函数库( libc ), 它是专门为基于 embedded linux 的设备定制的。

      ◆媒体库 - 基于 PacketVideo OpenCORE;该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。编码格式包括MPEG4, H.264, MP3, AAC, AMR, JPG, PNG 。

      ◆Surface Manager - 对显示子系统的管理,并且为多个应用程序提 供了2D和3D图层的无缝融合。

      ◆LibWebCore - 一个最新的web浏览器引擎用,支持Android浏览器和一个可嵌入的web视图。

      ◆SGL - 底层的2D图形引擎

      ◆3D libraries - 基于OpenGL ES 1.0 APIs实现;该库可以使用硬件 3D加速(如果可用)或者使用高度优化的3D软加速。

      ◆FreeType -位图(bitmap)和矢量(vector)字体显示。

      ◆SQLite - 一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。

      2)Android 运行库

      Android 包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik被设计成一个设备可以同时高效地运行多个虚拟系统。

      Dalvik虚拟机执行(.dex)的Dalvik可执行文件,该格式文件针对小内存使用做了优化。同时虚拟机是基于寄存器的,所有的类都经由JAVA编译器编译,然后通过SDK中 的 “dx” 工具转化成.dex格式由虚拟机执行。

      Dalvik虚拟机依赖于linux内核的一些功能,比如线程机制和底层内存管理机制。Linux 内核Android 的核心系统服务依赖于 Linux 2.6 内核,如安全性,内存管理,进程管理, 网络协议栈和驱动模型。 Linux 内核也同时作为硬件和软件栈之间的抽象层。
      4.linux核心
 

Android的各个版本
你可能早就注意到了,Android的各个版本代号都是一种食品,大名鼎鼎的谷歌,将产品都称为吃的东西,莫非他们也是“吃货”么?其实,Android系统的每一代都会以一种Google员工们喜爱的食品(尤其是甜点)命名,并且按字母顺序排列,为严肃的工作增添一份乐趣。恰逢周末,我们就来轻松一下,盘点下Android系统各版本是如何命名的,仅当一笑
 
Android1.5 (CupCake纸杯蛋糕)
Android1.6 ( Dount甜甜圈)

Android2.0 (Eclair松饼)

Android2.2 (Froyo冻酸奶)
Android2.3(Gingerbread姜饼)

Android3.0(HoneyComb蜂巢)

Android4.0(Ice Cream Sandwish冰激凌三明治)
Android4.1(Jelly Bean果冻豆)
Android4.2(Jelly Bean果冻豆)
Android4.3(Jelly Bean果冻豆)
Android4.4命名为KitKat。KitKat(奇巧)是一款雀巢旗下的巧克力棒
  

版本 备注
Android1.1 2008 年9月发布的Android第一版
Android 1.5 
Cupcake 
(纸杯蛋糕)
2009年4月30日,官方1.5版本(Cupcake 纸杯蛋糕)的Android发布。主要的更新如下: 
1、拍摄/播放影片,并支持上传到Youtube 
2、支持立体声蓝牙耳机,同时改善自动配对性能 
3、最新的采用WebKit技术的浏览器,支持复制/贴上和页面中搜索 
4、GPS性能大大提高 
5、提供屏幕虚拟键盘 
6、主屏幕增加音乐播放器和相框widgets 
7、应用程序自动随着手机旋转 
8、短信、Gmail、日暦,浏览器的用户接口大幅改进,如Gmail可以批量删除邮件 
9、相机启动速度加快,拍摄图片可以直接上传到Picasa 
10、来电照片显示
Android 1.6 
Donut 
(甜甜圈)
2009年9月15日,1.6(Donut 甜甜圈)版本软件开发工具包发布。主要的更新如下: 
1、重新设计的Android Market手势 
2、支持支持CDMA网络 
3、文字转语音系统(Text-to-Speech) 
4、快速搜索框 
5、全新的拍照接口 
6、查看应用程序耗电 
7、支持虚拟私人网络(VPN) 
8、支持更多的屏幕分辨率。 
9、支持OpenCore2媒体引擎 
10、新增面向视觉或听觉困难人群的易用性插件
Android2.0/2.0.1/2.1 
Eclair 
(松饼)
2009年10月26日,2.0(Eclair 松饼)版本软件开发工具包发布。主要的更新如下: 
1、优化硬件速度 
2、"Car Home"程序 
3、支持更多的屏幕分辨率 
4、改良的用户界面 
5、新的浏览器的用户接口和支持HTML5 
6、新的联系人名单 
7、更好的白色/黑色背景比率 
8、改进Google Maps3.1.2 
9、支持Microsoft Exchange 
10、支持内置相机闪光灯 
11、支持数码变焦 
12、改进的虚拟键盘 
13、支持蓝牙2.1 
14、支持动态桌面的设计
Android 2.2/2.2.1 
Froyo 
(冻酸奶)
2010年5月20日,2.2(Froyo 冻酸奶)版本软件开发工具包发布。主要的更新如下: 
1、整体性能大幅度的提升 
2、3G网络共享功能。 
3、Flash的支持。 
4、App2sd功能。 
5、全新的软件商店。 
6、更多的Web应用API接口的开发。
Android 2.3 
Gingerbread
(姜饼)
2010年12月7日,2.3(Gingerbread 姜饼)版本软件开发工具包发布。主要的更新如下: 
1、增加了新的垃圾回收和优化处理事件 
2、原生代码可直接存取输入和感应器事件、EGL/OpenGL ES、OpenSL ES。 
3、新的管理窗口和生命周期的框架。 
4、支持VP8和WebM视频格式,提供AAC和AMR宽频编码,提供了新的音频效果器 
5、支持前置摄像头、SIP/VOIP和NFC(近场通讯) 
6、简化界面、速度提升: 
7、更快更直观的文字输入: 
8、一键文字选择和复制/粘帖: 
9、改进的电源管理系统: 
10、新的应用管理方式:
Android 3.0 
Honeycomb 
(蜂巢)
2011年2月2日, 3.0(Honeycomb 蜂巢)版本主要更新如下: 
·优化针对平板 
·全新设计的UI增强网页浏览功能 
·n-app purchases功能
Android 3.1 
Honeycomb 
(蜂巢)
2011年5月11日在Google I/O开发者大会宣布发布,版本主要更新如下: 
Honeycomb 蜂巢(改进3.0BUG) 
经过优化的Gmail电子邮箱; 
全面支持GoogleMaps 
将Android手机系统跟平板系统再次合并从而方便开发者。 
任务管理器可滚动,支持USB 输入设备(键盘、鼠标等)。 
支持 Google TV.可以支持XBOX 360无线手柄 
widget支持的变化,能更加容易的定制屏幕widget插件。
Android 3.2 
Honeycomb 
(蜂巢)
2011年7月13日发布,版本更新如下: 
支持7英寸设备 
引入了应用显示缩放功能
Android 4.0 
Ice Cream 
“冰激凌三明治”
2011年10月19日 在香港发布, 
4.0(Ice Cream Sandwich 冰激凌三明治)版本主要更新如下: 
1、全新的ui 
2、全新的Chrome Lite浏览器,有离线阅读,16标签页,隐身浏览模式等。 
3、截图功能 
4、更强大的图片编辑功能 
5、自带照片应用堪比Instagram,可以加滤镜、加相框,进行360度全景拍摄,照片还能根据地点来排序 
6、Gmail加入手势、离线搜索功能,UI更强大。 
7、新功能People:以联系人照片为核心,界面偏重滑动而非点击,集成了Twitter、Linkedin、Google+等通讯工具。有望支持用户自定义添加第三方服务。 
8、新增流量管理工具,可具体查看每个应用产生的流量。 
9、正在运行的程序可以像电脑一样的互相切换 
10、人脸识别功能 
11、系统优化、速度更快 
12、支持虚拟按键,手机可以不再拥有任何按键 
13、更直观的程序文件夹: 
14、平板电脑和智能手机通用 
15、支持更大的分辨率 
16、专为双核处理器编写的优化驱动 
17、全新的Linux内核 
18、增强的复制粘贴功能 
19、语音功能 
20、全新通知栏: 
21、更加丰富的数据传输功能 
22、更多的感应器支持 
23、语音识别的键盘: 
24、全新的3D驱动, 游戏支持能力提升 
25、全新的谷歌电子市场 
26、增强的桌面插件自定义
Android N.n 
Jelly Bean 
“果冻豆”
继“冰激凌三明治”

 

Android操作系统架构的更多相关文章

  1. Android系统架构说明介绍

    Android系统架构说明介绍 Android系统架构和一些普遍的操作系统差不多,都是采用了分层的架构,从他们之间的架构图看,Android系统架构分为四个层,从高层到低层分别是应用程序层.应用程序框 ...

  2. 转载: android 学习架构

    http://www.cnblogs.com/forlina/archive/2011/06/29/2093332.html 引言 通过前面两篇: Android 开发之旅:环境搭建及HelloWor ...

  3. Android程序架构基本内容概述

    在Android操作系统中开发的应用程序都有一个结构缜密的架构.我们今天就来对这一Android程序架构做一个详细的分析.帮助大家了解程序开发的特点,以方便将来在应用程序开中明确自己的程序架构. An ...

  4. Android进阶(十一)Android系统架构讲解

    如果说一个成功男人的背后会有一个默默支持的女人的话,那么一个优越稳定的平台背后必有一个成熟的系统架构所支撑着.那么,Android的系统架构是怎么样的呢?从下图我们可以从整体上有个大致的了解(图片来源 ...

  5. Android进阶加密-第1章-Android系统架构-读书笔记

    第 1 章 Android 系统架构 1.1 Android 系统架构 Android 系统架构分为五层,从上到下依次是应用层.应用框架层.系统运行库层.硬件抽象层和 Linux 内核层. 应用层(S ...

  6. Android系统架构及内核简介

    (来源于ThinkPHP) Android是Google公司开发的基于Linux平台的开源手机操作系统,它包括操作系统.中间件.用户界面和应用程序,而且不存在任何以往阻碍移 动产业创新的专利权障碍,并 ...

  7. Android系统架构与系统源码目录

    前言 技术博客终于可以恢复正常的更新速度了,原因是我编写的进阶书籍的初稿已经完成,窃以为它将会是Android应用书籍中最有深度的一本,可以说是<Android开发艺术探索>的姊妹篇.在这 ...

  8. android基本架构

    Android其本质就是在标准的Linux系统上增加了Java虚拟机Dalvik,并在Dalvik虚拟机上搭建了一个JAVA的application framework,所有的应用程序都是基于JAVA ...

  9. Android官方架构组件指南

    此指南适用于那些曾经或现在进行Android应用的基础开发,并希望了解和学习编写Android程序的最佳实践和架构.通过学习来构建强大的生产级别的应用. 注意:此指南默认你对Android开发有比较深 ...

随机推荐

  1. IDEA下MyBatis错误总结

    1. Pom.xml配置 语法顺序 <properties resource="config.properties"> </properties> < ...

  2. android开发哪些坑需要注意

    同一个应用的JNI代码,不要轻易换NDK编译的版本,否则会有很多问题(主要是一些方法实现不一样,并且高版本对代码的检测更严格),比如r8没有问题,但到r9就有问题了,这是个大坑: Android的JN ...

  3. 消息中间件与RPC的区别

    消息中间件和消息通信与RPC各自具有怎样的优势,如何互补消息中间件主要实现的是异步.弹性消息以及队列,弹性消息有时可以借助于外存从而一定程度上可以实现峰值缓存,有效均衡服务器端压力,同时消息可以进行一 ...

  4. Django创建第一个应用

    一.创建第一个应用,并在settings.py中添加. python manage.py startapp article 二.创建第一个模型 class Article(models.Model): ...

  5. SQLite_Home

    SQLite教程 SQLite是一个库,实现了一个独立的软件,serverless zero-configuration.事务SQL数据库引擎.SQLite是世界上最广泛的部署SQL数据库引擎.SQL ...

  6. 富通天下(W 笔试)

    纸质算法题目 1.给你一个字符串,找出其中第一个只出现过一次的字符及其位置 正解:一层for循环,循环按序取出字符串中的单个字符,循环体内部使用String类的indexOf(),从当前字符下标往后搜 ...

  7. python+selenium自动化登录dnf11周年活动界面领取奖励登录部分采坑总结[1]

    背景: Dnf的周年庆活动之一,游戏在6月22日 06:00~6月23日 06:00之间登陆过游戏后可以于6月25日 16:00~7月04日 06:00领取奖励 目标:连续四天自动运行脚本,自动领取所 ...

  8. 4.关于while循环的基础小练习

    1)使用while.if循环输入123456 8910 count = 0 while count < 10: count += 1 if count == 7: print('') else: ...

  9. 【收藏】史上最全的浏览器 CSS & JS Hack 手册

    浏览器渲染页面的方式各不相同,甚至同一浏览器的不同版本(“杰出代表”是 IE)也有差异.因此,浏览器兼容成为前端开发人员的必备技能.如果有一份浏览器 Hack 手册,那查询起来就方便多了.这篇文章就向 ...

  10. Maven实战读书笔记(一):Maven概述

    1.1 Maven是什么,能做什么 Maven是一个跨平台的项目管理工具,主要服务于Java平台的项目构建.依赖管理和项目信息管理. Maven的用途之一是项目构建,能够自动化构建过程,从清理.编译. ...