1 Android平台简介
2 Android平台所提供的功能
3 Android框架简介
4 Android SDK 简介:包括一系列ANDROID应用开发工具和文档,包括调试器,库文件集,手机设备模拟器,文档,范例和开发指导。
5 Android平台和其它平台的比较
----------------------------------------------
1 Android平台简介
1》2007 11 5 GOOGLE 发布其与LINUX平台的开源移动平台操作系统--Android(此平台有操作系统,中间件,用户界面,应用软件所组成。)
2》2008 9 22 T-MOBILE 发布第一款基于Android的手机,G1,支持WCDMA/HSPA网络,下载7。2M/S,支持WIFI无线网络。
3》Android 将作为GOOGLE的企业战略的重要组成部分,实现“随时随地为每个人提供信息”。
4》2009 5 17 中国移动和联想合作的首款手机 OMS(中国移动通过Android平台演变的一种适合中国手机用户的智能操作系统) OPHONE手机开始手用体验。 OMS 采用LINUX内核,通过大唐移动的3G芯片以MODEM AP方式桥接,使得Android系操兼容了中国移动的TD 网络。
2 Android平台所提供的功能
1》应用程序架构:已提供多种不同的基础软件元素,为开发其它程序程序提供方便,节省时间精力。
2》DALVIK虑拟机:GOOGLE专为手机而开发的节省资料,高效率的多任力的虑拟机,运行手机程序。
3》Android 浏览器:是GOOGLE以WEBKIT的浏览引擎为基础开发的,局部缩放,触摸屏,
4》Android 绘图:支持2D(SGL),3D(OPENGL ES)绘图函数库。
5》SQLITE数据库:是一种开放性的源代码关系数据库。
6》多媒体支持:支持多种不同的媒体格式。
7》GSM驱动模块:Android专门提供了GSM驱动模块。
8》提供了无线网络:BLUETOOTH,EDGE,3G,WI-FI。
9》相机,GPS,电子指南针,加速感觉器功能。
10》Android SDK 提供了完善的程序开发环境:模拟器emulator,调查试工具debug bridge,程序所用内存,性能方面的评估功能。ECLIPSE IDE ADK
3 Android框架简介
1》Applications(应用程序层)
提供了现成的常用的应用程序包:EMAIL客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序,这些是JAVA语言编写的。
2》Applications FRAMEWORK(应用程序框架层):开发人员可以完全访问,调用的API 函数库。包括10个服务和系统:
1> Activity Manager:活動管理員,用来管理应用程序生命周期,并提供常用的导航,回退功能。例如:開啟應用程式要用到的資源準備及關閉應用程式時,
釋放出記憶體及相關資源等工作。
2> Windwos Manager:視窗管理員.用來管理所有開啟的視窗程式。
3> Content Providers:内容提供器,使得一个应用程序可以访问一个的数据(联系人数据库),或者共享它们自己的数据。可以用來讓應用程式可以存取
或分享資料給其它應用程式。
4> View System:建構程式原件,丰富可扩展的视图来构建应用程序:列表(LISTS),网格(GRIDS),文本框(TEXTBOXES),按钮(BUTTON)。
甚至是嵌入 式的瀏覽器
5> Notivication Manager:使得应用程序可以在状态栏显示自定义提示消息(Status Bar)。
6> Package Manager:管理所有安裝在Android系統內的程式
7> Telephony Manager:用來管理有關使用者撥打與接收電話的相關功能
8> Resourse Manager:提供非代码的资源的访问,如本地字符串,图形,布局文件。
9> Location Manager:用來管理地圖服務的相關功能.
10> XMPP Service(可扩展消息传递和到场协议)
3》Android 运行库
3.1> Libraries(函式庫)
1> Surface Manager:是用户空间中framework下libraries中负责显示相关的一个模块当系统同时执行多个应用程序时,Surface Manager会负责管
理显示与存取操作间的互动,另外也负责将2D绘图与3D绘图进行显示上的合成。
surface manager 可以准备一块 surface(可以看作一个layer),把 surface 的 fd (一块内存) 传给一个 app,让 app 可以在上面作画。
典型应用如下:
Android中的图形系统采用Client/Server架构,如下:
Client端:应用程序相关部分。代码分为两部分,一部分是由Java提供的供应用使用的api,另一部分则是由c++写成的底层实现。
Server端:即SurfaceFlinger,负责合成并送入buffer显示。其主要由c++代码编写而成。
Client和Server之前通过Binder的IPC方式进行通信,总体结构图如下:
如上图所示,Surface的client部分其实是提供给各应用程序进行画图操作的一个桥梁,该桥梁通过binder通向server端的Surfaceflinger
, Surfaceflinger负责合成各个surface,然后把buffer传送到framebuffer端进行底层显示。其中每个surface对应2个buffer,一个front
buffer, 一个back buffer,更新时,数据更新在back buffer上,需要显示时,则将back buffer和front buffer互换。
2> Media Framework:支持音频,视频,图象。
3> SQlite:轻量极数据库。
4> OpenGL ES: 3d
5> Free Type:位图和失量字体显示。
6> WebKit: WEB浏览器引器。
7> SGL: 2d
8> SSL:
9> libc:系统C函数,专门为基于岖入式LINUX设备所定制的。
3.2> Android RunnTime
1> Core Libraries: 核心库提供了JAVA编程语言核心库的大多数功能.
2> Dalvik virtual machine:提供給行動裝置一個最佳化過的Java虛擬機器,每一个Android应用程序都在它自己的进程中运行,都拥有一个独立
的Dalvik虚拟机实例。Dalvik被设计成一个设备可以同时高效地运行多个虚拟系统。 Dalvik虚拟机执行(.dex)的Dalvik可执行文件,该格式文件
针对小内存使用做了优化。同时虚拟机是基于寄存器的,所有的类都经由JAVA编译器编译,然后通过SDK中 的 "dx" 工具转化成.dex格式由虚
拟机执行。
Dalvik虚拟机核心系统服务依赖于 Linux 2.6 内核,如安全性,内存管理,进程管理, 网络协议栈和驱动模型。 Linux 内核也同时作为硬件和
软件栈之间的抽象层
4 Linux Kernel