移动开发资源:什么是Android?
Android是一个为移动设备而设计的包含操作系统、中间件和关键应用程序的软件栈。早期的Android SDK提供了开发工具以及在该平台上用Java开发应用程序需要用到的API。
.应用程序框架--可以重用或更换的组件
.Dalvik 虚拟机--为移动设备进行了优化
.集成浏览器--基于开源的Webkit引擎
.经过优化的图形技术--由一个定制的2D图形类库支持
.SQLite--提供结构化的数据存储
.多媒体支持--支持常见的声音、视频,以及静态图像格式(MPEG4、H.264、MP3、AAC、AMR、JPG、PNG、GIF)
.GSM电话--(依赖硬件)
.蓝牙、EDGE、3G以及WiFi(依赖硬件)
.照相机、GPS、指南针以及加速仪(依赖硬件)
.丰富的开发环境--包括一个设备模拟器、调试工具、内存和性能分析工具以及Eclipse IDE插件
特点
Android架构
下面的图片描述了Android操作系统的主要组件。每一部分在下面都将会详细的描述。
应用程序
Android附带了一套核心应用程序,包括一个email客户端、SMS程序、日历、地图、浏览器、电话本以及其它的应用程序。所有的应用程序都用Java编写。
应用程序框架
开发者通过使用核心的应用程序调用所有相同的框架APIs。这个应用程序结构被设计成方便复用的组件。任何的应用程序都可以公布它的功能,而任何其它的应用程序都可以利用这些功能(涉及到安全问题的功能将会被框架禁止)。这样的机制允许组件被用户替换。
下面所有的应用程序是一套服务与系统,包括:
.丰富、可扩展的视图菜单,可以用来创建应用程序。这些视图菜单包括列表(list)、网格(grid)、文本框(text box)、按扭(buttons),甚至包括嵌入式的网页浏览器。
.内容供应,可以让应用程序访问其它应用程序的数据(比如电话本),或者共享它们自己的数据。
.资源管理,提供了无编码的资源例如本地字符串、图形以及布局文件。
.提醒管理,允许所有的应用程序中状态栏显示定制的提醒。
.活动管理,管理所有应用程序的生命周期以及提供一个后退导航。
想了解更多的细节或练习应用程序,请看Writing an Android Application.
类库
Android有一套被Android系统的各个组件使用的C/C++类库。这些功能通过Android应用程序框架向开发者公开。一些核心的类库列表如下:
系统C类库(System C library) -一个由BSD系统衍生实现的C标准系统类库(libc),使其适应嵌入式的基于Linux的设备
多媒体类库(Media Libraries) -基于Packet Video''s OpenCORE:这些类库支持播放和刻录许多流行的声音和视频格式,除了静态图片外,还包括MPEG4, H.264, MP3, AAC, AMR, JPG以及PNG等。
表面管理器(Surface Manager) -管理显示子系统的访问以及将多个应用程序的图形层无缝的融合。
网页核心类库(LibWebCore) -一个现代浏览器引擎,它提供了Android浏览器和可嵌入式的网页查看器。
SGL--底层的2D图形引擎
FreeType -点阵或矢量字体的渲染
SQLite -一个功能强大的轻量级的能被所有应用程序使用的关系数据库引擎
Android运行环境
Android包含了一套核心的核心类库。这个类库提供了Java核心类库的大部分功能。每一个Android应用程序运行在自己的进程中,拥有自己的Dalvik虚拟机。Dalvik虚拟机已经被优化,使一个设备能够高效的同时运行多个Dalvik虚拟机。Dalvik虚拟机运行经过优化的占用内存资源最小的.dex格式文件。Dalvik基于寄存器,执行Java编译器编译过的class文件,而这个Java编译器被一个叫"dx"的工具转换成了.dex格式。
Dalvik虚拟机依赖Linux内核来实现底层的功能,比如线程、低阶内存管理。
Linux Kernel
Android的核心系统服务比如安全、内存管理、进程管理、网络栈以及驱动模型依靠Linux2.6来实现。这个核心也起到抽象硬件和其它剩下的软件栈道作用。