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

功能特点:

  • 应用程序框架:支持组件的重用和替换。
  • Dalvik虚拟机:专门为移动设备优化的一个虚拟机。
  • 集成的浏览器:基于开源浏览器WebKit的引擎。
  • 优化的图形处理:采用定制的2D图形库,3D是基于OpenGL ES1.0规范(可选的硬件加速)。
  • SQLite:用来存储结构化的数据。
  • 媒体支持:支持常见的音频视频和静态图像格式,如MPEG4、H.264、MP3、AAC、AMR、JPG、PNG、GIF。
  • GSM技术:依赖于硬件。
  • 蓝牙、EDGE网络、3G、WIFI:依赖于硬件。
  • 拍照、导航、指南针、加速计:依赖于硬件。
  • 丰富的开发环境:包括一个虚拟器、调试工具、内存和性能分析、Eclipse插件。

Android架构:

下面那张图表显示了Android操作系统的主要部件,每一部分将会详细讲解。

应用程序:

Android 将会携带有一些核心的应用,比如邮件客户端、SMS程序、日历、地图、浏览器、联系人等等。所有的应用程序都用Java语言开发。


应用框架:

通过提供一个开源的平台,Android可以让开发者自由的开发丰富、创新的应用程序。开发者可以免费利用设备的硬件,访问本地信息、启动后台服务、设置闹铃、给状态栏增加提醒功能,等等非常多的应用。

开发人员通过核心应用程序,可以完全访问同一框架的APIs。应用框架是设计用来提高组件的可重用。任何程序都可以公布他的功能让其他程序来调用(在框架许可的前提下)。相同的机制允许用户替换掉某些功能。

和所有程序相关的是一些服务和系统,包括:

  • 一些丰富的可扩展视图:可以用来构造应用程序,包括列表、表格、输入框、按钮、可以写内置的浏览器。
  • 内容提供:可以让程序访问其他程序的数据,例如联系人列表,或者共享自己的数据。
  • 资源管理器:提供访问非代码的资源的方法,例如本地化的一些字符串、图像、布局文件。
  • 一个提示管理器:可以让程序在状态栏显示自定义的提示信息。
  • 一个Activity管理器:管理activity的生命周期并且提供一个公共的导航功能。
    更多详细信息可以通过一个例子来学习:参考 Noteoad Tutorial。

Libraries:

通过提供一个开发的平台,Android包含了一些系统各个部分使用到的C/C++库,通过Android应用程序程序框架,这些功能对于开发者来说是公开的,部分核心库如下:

  • System C Library :一个继承自BSD的标准C系统库,专门为了嵌入式Linux设备。
  • MediaLibraries :基于 PacketVideo's OpenCORE库,支持播放和回放一些主流的音频视频格式,像静态图片文件,包括MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG格式。
  • Surface Manager:管理显示子系统,在多个应用程序里无缝综合2D和3D图层。
  • LibWebCore:一个流行的web浏览器引擎,供Android浏览器和内置的浏览view使用。
  • SGL:一个底层的2D图像引擎。
  • 3D Libraries:基于OpenGL ES 1.0 的3D图像引擎。包括硬件加速和优化过的3D软件加速。
  • FreeType:位图和矢量字体的渲染(rendering)。
  • SQLite:一个强大的轻量级的数据库引擎对所有程序提供使用。

Android 运行时库:

Android包含了Java语言的大部分的核心库。

每一个Android应用程序运行在自己的线程里,有自己的dalvik虚拟机实例,Dalvik虚拟机被用来支持在一个移动设备上支持多个虚拟机。Dalvik虚拟机执行文件(.dex)被优化的内存占用(memory footprint)很小。VM是基于寄存器(register-based),并且通过Java语言编译器运行由class文件转换的.dex文件,通过内置的dx工具。

Dalvik虚拟机依赖Linux核心,来管理线程和底层的内存管理。


Linux kernel:

Android 依赖Linux2.6内核作为核心系统服务,像安全、内存管理、进程管理、网络堆(network stack)、驱动模型(driver model)。Kernel扮演者一个软硬件之间的抽象层的角色。


建议初学者结合中文翻译看英文原版,我们以后还是逃避不了要读英文原著,现在我也硬着头皮把原版的看一遍,Bless

更多相关文章

  1. Android4.0 Design之UI设计易犯的错误1
  2. Android应用程序基础知识
  3. android window类
  4. Android(安卓)传感器
  5. 每一位Android开发者应该知道的Android体系架构和开发库(转)
  6. android mms流播放器
  7. android系统体系结构
  8. 详解android应用程序的反编译
  9. Android(安卓)平台基础开发简介

随机推荐

  1. android ScrollView 充满屏幕
  2. 加载AnimationDrawable 从xml file
  3. Android——拖动条SeekBar
  4. android selector的使用
  5. Android EditText 输入校验
  6. Android Maven Plugin
  7. android网络编程注意事项之一:移动网络下,
  8. Android静态,动态广播示例
  9. android中View.measure方法详解
  10. android apk 为程序增加代码混淆