原文链接:http://android.eoe.cn/topic/overview

什么是Android?

版本:Android 4.0 r1

Android是一个移动设备的程序集合,包括的操作系统、中间件和关键的应用程序。Android SDK提供了必要的工具和API,使用Java编程语言在Android平台开发应用程序。

特点

  • * 应用程序框架* 使组件可以被重用和替换
  • * Dalvik虚拟机* 为移动设备优化
  • * 集成的浏览器* 基于开源的WebKit引擎
  • * 基于优化的图形* 由一个自定义的2D图形库支持;3D图形的OpenGL ES 1.0规范(可选硬件加速)
  • * SQLite* 结构化的数据存储
  • * 媒体支持* 常见的音频、视频和静止图像格式(MPEG4、H.264、MP3、AAC、AMR、JPG、PNG、GIF)
  • * GSM电话* (依赖于硬件)
  • * 蓝牙、EDGE、3G和WiFi* (依赖于硬件)
  • * 摄像头、GPS、指南针、和加速度计* (依赖于硬件)
  • * 丰富的开发环境* 包括设备模拟器、调试器、内存和性能分析工具,以及一个Eclipse IDE的插件

Android架构

下图展示了Android操作系统的主要组成部分,每一部分在下面有更详细地描述。

文件:Android framework.png

应用程序

Android会附带了一套核心应用,包括电子邮件客户端,短信程序,日历,地图,浏览器,联系人等。所有应用程序都使用Java编程语言编写。

应用框架

Android通过一个开放的开发平台,给开发人员在创建极为丰富创新性的应用程序上提供了有力的支持。开发者可以自由设定设备的硬件场景、接入位置信息、运行后台服务、设置闹钟、添加状态栏通知和更多的在其他优势方面上。
开发者拥有使用相同的框架API访问核心应用程序的全部权利。应用程序架构旨在简化组件的重用,任何应用都可以发布它的功能,之后任何其他应用程序都能使用这些功能(受强制执行的安全框架约束)。该机制允许用户更换组件。
在所有应用程序的背后都是使用一套服务和系统,包括:
* 丰富的视图和扩展,可以用来构建应用程序,包括列表、网格、文本框、按钮、甚至内嵌的网页浏览器
*内容提供者(Content Providers),使应用程序能够访问其他应用程序的数据(如通讯录)或共享自己的数据
*资源管理器(Resource Manager),提供非代码资源的访问,如本地化的字符串、图形、和布局文件
*通知管理器(Notification Manager),使所有的应用程序都能在状态栏显示自定义警报信息
*活动管理器(Activity Manager)管理应用程序的生命周期,并提供一个导航使用的共同的返回栈
对于更多的细节和应用程序的演示,请看记事本教程。

Android包括一组由C / C + Android系统组成的各个部分所用的库。这些功能都通过Android应用程序框架提供给开发者。下面列出了一些核心库:
* * 系统C库* -BSD,一个为基于嵌入式Linux的设备调整的标准C系统库(libc)的派生实现
* * 媒体库* - 基于PacketVideo的OpenCORE库支持许多流行的音频和视频格式的播放和录音,以及静态图像文件,包括MPEG4,H.264标准,支持MP3,AAC,AMR,JPG和PNG格式
* * Surface Manager* - 管理访问显示子系统和从多个应用程序无缝合成2D和3D图形层
* * LibWebCore* - 一个为Android浏览器和可嵌入的网页视图提供支持的现代化的网页浏览器引擎
* * SGL* - 底层的2D图形引擎
* * 3D库* - 基于OpenGL ES 1.0 API的实施库,无论使用或是包含硬件3D加速(如果可用)和高度优化的3D软件光栅化
* * FreeType* - 位图和矢量字体渲染
* * SQLite* - 为所有的应用程序提供一个强大而且轻量级的关系数据库引擎

Android运行时

Android包括一套核心库,提供在Java编程语言的核心库中大部分可用的功能。
每一个Android应用程序与自己的Dalvik虚拟机运行在它自己的进程中。Dalvik被设计成设备可以有效地运行多个虚拟机。Dalvik虚拟机执行的Dalvik可执行格式(.dex)是最小的内存占用优化文件。虚拟机是基于寄存器的,运行已所包含的“dx”工具转化成.dex格式的Java语言的编译器编译的类。
Dalvik虚拟机依赖于Linux内核的基本功能,如:线程和低级别的内存管理。

Linux内核

Android依赖Linux 2.6版本的系统核心服务,如安全,内存管理,进程管理,网络堆栈,驱动模型。内核也作为硬件和软件堆栈的其余部分之间的抽象层。

更多相关文章

  1. Android的四大组件
  2. Android学习笔记(二八):字体
  3. 转:打造一款 Android(安卓)联网 tic-tac-toe 游戏
  4. ch010 Android(安卓)GridView
  5. ch014 Android(安卓)AppWidget
  6. ch010 Android(安卓)GridView
  7. 【翻译】(1)Android(安卓)NDK Overview
  8. CSDN 很经典的博客 您值得一览
  9. 去掉Android(安卓)TextView 去掉内边距

随机推荐

  1. Android 实现TextView中 文字链接的方式
  2. android WebView知识
  3. Android Theme 熟悉的一点点
  4. 好用的Android库
  5. android view事件顺序
  6. Android 基础总结:(一)Android系统架构
  7. 设置提示信息,输入值类型,输入框引入图片,设
  8. Android 4.4环境搭建——Android SDK下载
  9. Android内存分析总结
  10. [原]如何在Android用FFmpeg+SDL2.0解码声