欢迎关注Android!
Android平台是一组面向移动设备的软件包,它包含了一个操作系统、中间件和关键应用程序。开发人员可以使用Android SDK(软件开发工具包)为这个平台创造应用程序。应用程序使用Java语言编写并在Dalvik之内运行。Dalvik是一款量身定制的虚拟机,它专为嵌入式应用设计,运行在Linux内核上层。
如果你想了解如何为Android平台开发应用程序,你就来对地方了!为了帮助大家了解Android平台进而开发移动应用程序,这里 提供了各种丰富的文档。
Android SDK 的预览版已经可以下载 了。其中包括了附含源代码的样例工程、开发工具、仿真器,当然了,还有你构建工程所必需的类库。
Android是什么?
机器人?
Android是一组面向移动设备的软件包,包含了一个操作系统,中间件和关键应用程序。Android SDK 的预览版提供了必需的开发工具和应用程序接口,基于这些,我们就可以使用Java编程语言在Android平台上开发应用程序了。
特性
- 应用程序框架 支持组件的复用和更换
- Dalvik 虚拟机 专门为移动设备进行过优化
- 集成的浏览器 基于开源的 WebKit 引擎
- 优化的图形机制 自定义的2D图形库,基于OpenGL ES 1.0规范的3D图形实现(本项为硬件加速器可选)
- SQLite 轻量级的数据库,支持结构化数据的存储
- 媒体支持 面向常见的音频、视频以及静态图形档案格式 (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
- GSM 技术 GSM:global system for mobile communications (依赖硬件支持)
- Bluetooth, EDGE, 3G, and WiFi (依赖硬件支持)
- Camera, GPS, compass, and accelerometer (依赖硬件支持)
- Rich development environment 丰富的开发环境,包含一套硬件仿真器,一些用于程序调试、内存和性能剖析的工具,以及支持Eclipse集成开发环境的插件(ADT )。
Android架构
下方图表显示了Android操作系统的主要组件。要知道关于各个部分更多的细节,下文还有描述,请继续看。
Applications (应用)
Android将预装一组核心应用程序,包括email客户端、短信服务、日历日程、地图服务、浏览器、联系人和其他应用程序。所有应用程序都是Java编程语言编写的。
Application Frameworks (应用框架)
上文所提的核心应用程序就是依赖框架层次API开发的,程序员们当然也可以充分使用这些API。应用架构设计的初衷是:简化组件复用机制;任何应用都能发布自己的功能,这些功能又可以被任何其他应用使用(当然要受来自框架的强制安全规范的约束)。和复用机制相同,框架允许组件的更换。
所有应用都是一组服务和系统,一般包含:
- 一套丰富且可扩展的视图 组件,含有lists, grids, text boxes, buttons, 甚至嵌入的网络浏览器
- Content Providers (内容提供器) 使一个应用可以访问另外一个应用的数据(如联系人),或者使一个应用内部可以共享自身数据
- Resource Manager (资源管理器),提供对非编码资源——例如本地化字符串、图形和布局文件——的访问通道
- Notification Manager (通告管理器),使应用在状态栏显示自定义的警报通知。
- Activity Manager (行动管理器)负责管理应用的生命周期,提供通用导航回退支持
要知道更多细节,了解应用内幕,请参考教程 《Android应用编写》
Libraries (库)
Android包含一套C/C++库,Android系统的各式组件都在使用。这些功能通过Android应用框架暴露给开发人员。下面列举一些核心库:
- System C library - 衍生于BSD的标准C系统库(libc)实现(注:BSD:Berkeley Software Distribution,伯克利软件套件,是Unix的衍生系统,1970年代由伯克利加州大学开创),尤其支持嵌入式的基于Linux的设备。
- Media Libraries - 媒体库基于PacketVideo's OpenCORE;媒体库支持很多流行音频和视频格式、静态图形文件(包括MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG )的播放和录制
- Surface Manager - 管理范围:对子系统显示功能的访问,跨应用的无缝组合2D和2D图形层
- LibWebCore - 是流行的浏览器引擎,可以支持Android浏览器和嵌入应用的WEB视图组件
- SGL - 底层的2D图形引擎
- 3D libraries - 基于OpenGL ES 1.0 API的实现; 该类库使用硬件3D加速器(如果硬件支持的话)或者内置的、高度优化的3D软件加速机制。
- FreeType - 支持位图和矢量字体
- SQLite - 能干、轻量级的关系型数据库引擎,面向所有应用
Android Runtime (Android运行时)
Android的核心类库提供Java类库所提供的绝大部分功能。
每个Android应用都运行在自己的进程上,享有Dalvik虚拟机为它分配的专有实例。为了支持多个虚拟机在同一个设备上高效运行,Dalvik被改写过。
Dalvik虚拟机执行的是Dalvik格式的可执行文件(.dex)——该格式经过优化,以降低内存耗用到最低。Java编译器将Java源文件转为class文件,class文件又被内置的dx工具转化为dex格式文件,这种文件在Dalvik虚拟机上注册并运行。
在一些底层功能——比如线程和低内存管理方面,Dalvik虚拟机是依赖Linux内核的。
Linux Kernel (Linux内核)
Android依赖Linux 2.6版,提供核心系统服务:安全、内存管理、进程管理、网络组、驱动模型。内核部分还相当于一个介于硬件层和系统中其他软件组之间的一个抽象层次。