自从谷歌推出Android手机平台以来,以Android为平台的手机和平板电脑越来越受欢迎。Android开发相对容易上手。什么是安卓?Android是专门为移动设备而设的一套软件,包括操作系统、中间件和一些重要的应用程序。AndroidSDK为在Android平台上使用Java语言开发Android应用程序提供了必要的工具和API接口。Android特性?应用框架支持组件的重用和替换?针对移动设备优化的Dalvik虚拟机?基于开源WebKit引擎的集成浏览器?优化的图形库包括自定义2D图形库,基于OpenGLES1.0的3D图形库(硬件加速可选))?用于结构化数据存储的SQLite?多媒体支持,包括常见的音频、视频和静止图像格式(例如MPEG4、H.264、MP3、AAC、AMR、JPG、PNG、GIF)?GSM电话(取决于硬件)?蓝牙、EDGE、3G和WiFi(取决于硬件)?摄像头、GPS、指南针和加速度计(取决于硬件)?丰富的开发环境,包括设备模拟器、调试工具、内存和性能分析图表以及Eclipse集成开发环境插件。应用程序框架开发人员还可以完全访问核心应用程序使用的API框架。应用程序的架构设计简化了组件重用;任何应用程序都可以发布其功能块,任何其他应用程序都可以使用其发布的功能块(受框架的安全限制)。同样,应用程序重用机制使用户能够轻松更换程序组件。每个应用背后隐藏着一系列的服务和系统,包括:?丰富且可扩展的视图(Views),可用于构建应用程序,其中包括列表(lists)、网格(grids)、文本框(textboxes)、按钮(buttons),甚至是可嵌入的网络浏览器。?内容提供者(ContentProviders)允许应用程序访问另一个应用程序的数据(例如联系人数据库),或共享自己的数据?资源管理器(ResourceManager)提供对非代码资源的访问,例如本地字符串、图形、和布局文件(layoutfiles)。?通知管理器(NotificationManager)使应用程序能够在状态栏中显示自定义提示。?活动管理器(ActivityManager)用于管理应用程序生命周期并提供通用导航回退功能。库Android包含一些C/C++库,可供Android系统中的不同组件使用。他们通过Android应用程序框架为开发人员提供服务。以下是一些核心库:?SystemC库——一个标准的C系统函数库(libc),它继承自BSD,专门为基于linux的嵌入式设备定制。?媒体库——基于PacketVideoOpenCORE;这个库支持播放和录制许多常见的音频和视频格式,以及静止图像文件。编码格式包括MPEG4、H.264、MP3、AAC、AMR、JPG、PNG。?SurfaceManager–管理显示子系统并为多个应用程序提供2D和3D层的无缝混合。?LibWebCore-一种先进的网络浏览器引擎,支持Android浏览器和可嵌入的网络视图。?SGL-底层2D图形引擎?3D库-基于OpenGLES1.0API实现;该库可以使用硬件3D加速(如果可用)或使用高度优化的3D软加速。?FreeType-位图(bitmap)和矢量(vector)字体显示。?SQLite–适用于所有应用程序的强大的轻量级关系数据库引擎。Android运行时Android包含一个核心库,它提供了JAVA编程语言核心库的大部分功能。每个Android应用程序都在自己的进程中运行,并带有一个独立的Dalvik虚拟机实例。Dalvik旨在让一台设备可以同时高效地运行多个虚拟系统。Dalvik虚拟机执行(.dex)Dalvik可执行文件,这是一种针对小内存使用而优化的格式。同时,虚拟机是基于寄存器的。所有类均由JAVA编译器编译,然后通过SDK中的“dx”工具转成.dex格式供虚拟机执行。Dalvik虚拟机依赖于linux内核的一些功能,比如线程机制和底层内存管理机制。LinuxKernelAndroid的核心系统服务依赖于Linux2.6内核,如安全、内存管理、进程管理、网络协议栈和驱动模型等。Linux内核还充当硬件和软件堆栈之间的抽象层。Android应用程序和框架下图显示了Android系统的主要组件。核心应用程序,例如联系人、电子邮件、电话、浏览器、日历、地图...完全访问所有核心应用程序框架APIC/C++库:由各种Android组件使用通过应用程序框架,开发人员可以使用其功能包括:媒体库:MPEG4H.264MP3JPGPNG.....WebKit/LibWebCore:网页浏览引擎SQLite关系数据库引擎2D,3D图形库,引擎Android使用Java作为开发语言,很大一部分库与JavaSE共享,但与JavaME不同的是,Dalvik虚拟机并不是Java虚拟机。Eclipse是Android推荐的开发IDE。Android平台自带的通讯录、邮件、电话、浏览器、日历、地图等各种应用都可以改写。
