注:本系列文章原文内容来自http://code.google.com/android的介绍,每章之前会给出原始文章地址,主要为共享资源使用,欢迎教学用转载。用于商业用途请先联系作者。
What is Android?
原文
Android是一个为移动设备设计的软件平台,包括操作系统、中间件和一些关键应用。目前发布的Android SDK提供了必须的工具和进行应用开发所必须的API,在Android上的开发使用Java语言。
功能:
应用框架 支持组件重用和替换
Dalvik虚拟机 专为移动设备优化
集成的浏览器 基于开放源代码的WebKit引擎
优化的图象功能 一个定制的强劲的2D图象库,3D图象基于OpenGL ES 1.0(可选硬件加速功能)
SQLite 支持结构画的数据存储
多媒体支持 支持通常的音视频和图象格式(MPEG4,H264,MP3,AAC,AMR,JPG,PNG,GIF) (怎么就没有rm和wmv之类的,莫非斗争中。。。)
GSM电话 视硬件情况而定
蓝牙,EDGE,3G和WiFi 视硬件情况而定
摄像头,GPS,compass和accelerometer 视硬件情况而定
开发环境 包括一个设备模拟器,debug工具,内存和性能测试功能和一个Eclipse插件
Android系统架构
下图描述了Android的主要组件,每块都会在后面的说明中详细解释。
http://static2.photo.sina.com.cn/orignal/53ba798343eceb83b1a71
应用程序
Android将会一直一系列的核心应用,包括email客户端,SMS程序,日历,地图,浏览器,联系人等等。所有的应哟国内程序都使用Java编写。(其实在youtube上的Android Demo视频中已经可以看到这些功能的演示了,看起来相当的nice,:-),Youtube的Android Demo视频 )
应用框架
开发者开发自己的应用时可以调用核心应用所使用的相同的API接口。这个应用程序架构被设计用来简化组件的重用;任何应用都可以宣布它的功能,其他的任何应用都可以使用这些功能。相同的机制允许组件被用户替换。
背后的所有应用,是一套服务和系统,包括:
1.丰富并且可扩展的View System,可以用来简历应用程序,包括列表、表格、文本框、按钮,甚至包括嵌入的web浏览器。
2.Content Providers允许应用程序访问来自其他应用的数据(比如说联系人),或者共享它们自己的数据。
3. Resource Manager提供对非代码的资源的访问,比如本地化字串、图象、layout文件等。
4.Notification Manager允许所有的应用程序在状态条上显示定制的信息。
5.Activity Manager管理应用程序的生命周期,并且提供一个通用的导航回退功能(provides a common navigation backstack)
更多关于Android的详情,请看Writing an Android Application
库
Android包括了一套C/C++库,这些功能是通过Android应用框架提供给开发者的。下面是一些核心库:
1.系统C库 一个源自BSD的标准C库(libc),为基于Linux的嵌入式应用优化过。
2.多媒体库 基于PacketVideo的OpenCORE。支持许多流行的音视频格式的播放和录制,以及静态图象文件支持,包括MPEG4、H264、MP3、AAC、AMR、JPG、PNG、GIF。
3.Surface Manager 管理对显示子系统的访问,无缝的合成显示来自多个应用的2D和3D图象(seamlessly composites 2D and 3D graphic layers from multiple applications)
4.LibWebCore 一个web浏览器引擎,驱动Android浏览器和一个克嵌入的web view。
5.SGL 底层2D图象引擎
6.3D图象库 基于OpenGL ES 1.0 API的一个实现。该库可以使用硬件3D加速(如果硬件支持),也可以使用包含的高度优化的3D软件加速功能。
7.FreeType 位图和向量字体支持
8.SQLite 一个功能强大的轻量级关系数据库引擎
。。。。。。
Android Runtime
Android包括了一套核心库,提供Java核心库所提供的大部分功能。
每个Android应用程序在它自己的进程中运行,有它自己的Dalvik虚拟机的实例。Dalvik已经被改写过,使得一个设备可以有效得运行多个 VM。Dalvik虚拟机运行自己独特的可执行文件格式――.dex,该格式经过优化,使用尽量少的内存。虚拟机是基于寄存器的,运行被“dx”工具转化为dex格式的java代码。(The VM is register-based, and runs classes compiled by a Java language compiler that have been transformed into the .dex format by the included "dx" tool.)
Dalvik虚拟机依赖Linux Kernel提供底层功能支持,如线程、底层内存管理。
Linux Kernel
Android依赖Linux内核2.6提供核心系统服务,比如安全、内存管理、进程管理、网络、硬件驱动。Linux内核扮演的是硬件层和系统其他层次之间的一个抽象层的概念。
2008年4月28日
Android学习系列之一--What’s Android
订阅:
博文评论 (Atom)
没有评论:
发表评论