AndroidAndroid一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。目前,最新版本为Android2.4Gingerbread和Android3.0Honeycomb。系统简介Android是基于Linux内核的操作系统,是Google公司在2007年11月5日公布的手机操作系统,早期由原名为Android的公司开发,谷歌在2005年进行收购Android.Inc,Google继续进行对Android系统开发运营,它采用了软件堆层(softwarestack,又名以软件叠层)的架构,主要分为三部分。底层Linux内核只提供基本功能;其他的应用软件则由各公司自行开发,部分程序以Java编写。2011年初数据显示,仅正式推出三年的操作系统Android已经超越称霸十年的塞班系统,采用Android系统主要厂商包括美国摩托罗拉(MOTOROLA)、韩国的三星(SAMSUNG)、英国索尼爱立信(SonyEricsson)另外还有中国厂商如:中国台湾HTC、联想、华为、中兴等,使之跃居全球最受欢迎的智能手机平台,Android系统不但应用于智能手机,也在平板电脑市场急速扩张。Android以Java为编程语言,使接口到功能,都有层出不穷的变化,其中Activity等同于J2ME的MIDlet,一个Activity类(class)负责创建视窗(window),一个活动中的Activity就是在foreground(前景)模式,背景运行的程序叫做Service。两者之间通过由ServiceConnection和AIDL连结,达到复数程序同时运行的效果。如果运行中的Activity全部画面被其他Activity取代时,该Activity便被停止(stopped),甚至被系统清除(kill)。View等同于J2ME的Displayable,程序人员可以通过View类与“XMLlayout”档将UI放置在视窗上,Android1.5的版本可以利用View打造出所谓的Widgets,其实Widget只是View的一种,所以可以使用xml来设计layout,HTC的AndroidHero手机即含有大量的widget。至于ViewGroup是各种layout的基础抽象类(abstractclass),ViewGroup之内还可以有ViewGroup。View的构造函数不需要再Activity中调用,但是Displayable的是必须的,在Activity中,要通过findViewById()来从XML中取得View,Android的View类的显示很大程度上是从XML中读取的。View与事件(event)息息相关,两者之间通过Listener结合在一起,每一个View都可以注册一个eventlistener,例如:当View要处理用户触碰(touch)的事件时,就要向Android框架注册View.OnClickListener。另外还有Image等同于J2ME的BitMap。中介软件操作系统与应用程序的沟通桥梁,并用分为两层:函数层(Library)和虚拟机(VirtualMachine)。Bionic是Android改良libc的版本。Android同时包含了Webkit,所谓的Webkit就是AppleSafari浏览器背后的引擎。Surfaceflinger是就2D或3D的内容显示到屏幕上。Android使用工具链(Toolchain)为Google自制的BionicLibc。Android采用OpenCORE作为基础多媒体框架。OpenCORE可分7大块:PVPlayer、PVAuthor、Codec、PacketVideoMultimediaFramework(PVMF)、OperatingSystemCompatibilityLibrary(OSCL)、Common、OpenMAX。Android使用skia为核心图形引擎,搭配OpenGL/ES。skia与LinuxCairo功能相当,但相较于LinuxCairo,skia功能还只是雏形的。2005年Skia公司被Google收购,2007年初,SkiaGL源码被公开,目前Skia也是GoogleChrome的图形引擎。Android的多媒体数据库采用SQLite数据库系统。数据库又分为共用数据库及私用数据库。用户可通过ContentResolver类(Column)取得共用数据库。Android的中间层多以Java实现,并且采用特殊的Dalvik虚拟机(DalvikVirtualMachine)。Dalvik虚拟机是一种“暂存器型态”(RegisterBased)的Java虚拟机,变量皆存放于暂存器中,虚拟机的指令相对减少。Dalvik虚拟机可以有多个实例(instance),每个Android应用程序都用一个自属的Dalvik虚拟机来运行,让系统在运行程序时可达到优化。Dalvik虚拟机并非运行Java字节码(Bytecode),而是运行一种称为.dex格式的文件。硬件抽像层(HardwareAbstractionLayer)Android的HAL(硬件抽像层)是能以封闭源码形式提供硬件驱动模块。HAL的目的是为了把Androidframework与Linuxkernel隔开,让Android不至过度依赖Linuxkernel,以达成kernelindependent的概念,也让Androidframework的开发能在不考量驱动程序实现的前提下进行发展。HALstub是一种代理人(proxy)的概念,stub是以*.so档的形式存在。Stub向HAL“提供”操作函数(operations),并由Androidruntime向HAL取得stub的operations,再callback这些操作函数。HAL里包含了许多的stub(代理人)。Runtime只要说明“类型”,即moduleID,就可以取得操作函数。编程语言Android是运行于Linuxkernel之上,但并不是GNU/Linux。因为在一般GNU/Linux里支持的功能,Android大都没有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。Android又以bionic取代Glibc、以Skia取代Cairo、再以opencore取代FFmpeg等等。Android为了达到商业应用,必须移除被GNUGPL授权证所约束的部份,例如Android将驱动程序移到userspace,使得Linuxdriver与Linuxkernel彻底分开。bionic/libc/kernel/并非标准的kernelheaderfiles。Android的kernelheader是利用工具由Linuxkernelheader所产生的,这样做是为了保留常数、数据结构与宏。目前Android的Linuxkernel控制包括安全(Security),存储器管理(MemoryManagement),程序管理(ProcessManagement),网络堆栈(NetworkStack),驱动程序模型(DriverModel)等。下载Android源码之前,先要安装其构建工具Repo来初始化源码。Repo是Android用来辅助Git工作的一个工具。Android历史2008年9月22日,美国运营商德国T-Mobile在纽约正式发布第一款Android手机——T-MobileG1。该款手机为台湾宏达电(HTC)代工制造,是世界上第一部使用Android操作系统的手机,支持WCDMA/HSPA网络,理论下载速率7.2Mbps,并支持Wi-Fi。2009年9月初,摩托罗拉坐镇主场在旧金山举办的GigaOM2009大会上携手T-Mobile正式发布了旗下首款搭载Android操作系统的智能手机---MOTOCLIQ,在沉寂许久后的首次爆发吸引了全球无数用户的目光。如果说T-MobileG1的出世开辟了Android领域先河的话,那么摩托罗拉CLIQ的发布则更多的被视为昔日手机霸主的强势回归!2009年10月28日正式发布了Android2.0智能手机操作系统,今天摩托罗拉和网络运营商Verizon共同宣布了首款采用Android2.0的手机Droid2010年1月索尼爱立信首款Android机型X10上市2010年1月7日,Google在其美国总部正式向外界发布了旗下首款合作品牌手机NexusOne(HTCG5),并同时开始对外发售。2010年7月9日,美国NDP集团调查显示,Android系统已占据了美国移动系统市场28%的份额。开放手机联盟为了推广Android,Google和几十个手机相关企业建立了开放手机联盟(OpenHandsetAlliance)。联盟成员包括美国摩托罗拉公司、中国台湾HTC、韩国三星电子、NVIDIA、SiRF、Skype、联发科技MTK以及中国电信在内的34家技术和无线应用的领军企业。这34家企业中并不包含把持Symbian的Nokia公司,以及凭借着iPhone风光正在的Apple公司。微软没有加入,加拿大RIM和它的Blackberry也被挡在门外。手机开放联盟大家庭成员名单:1、手机和其他终端制造商MotorolaMobility(摩托罗拉移动技术)-美国SonyEricsson(索尼爱立信)-英国HTC(宏达国际电子)-中国台湾SamsungElectronics(三星电子)-韩国LGElectronics(LG电子)-韩国Lumigon(丹麦陆力更手机公司)-丹麦ARCHOS(爱可视)-法国TOSHIBA(东芝)-日本2、移动运营商ChinaTelecom(中国电信)-中国ChinaMobile(中国移动)-中国ChinaUnicom(中国联通)-中国SKTelecom-韩国KT-韩国LGU-韩国KDDI-日本NTTDoCoMo(日本电信电话公司)-日本SprintNextel(美国斯普林特Nextel公司)-美国TelecomItalia(意大利电信)-意大利Telefónica-西班牙T-Mobile-德国3、半导体公司ARM-英国TexasInstruments(德州仪器)-美国Qualcomm(高通)-美国NVIDIA(英伟达)-美国MediaTek(联发科)-中国台湾ST(意法半导体)-欧洲Infineon(英飞凌科技)-德国ST-Ericsson(ST爱立信)-欧洲Audience(听众)-美国Broadcom(博通)-美国Intel(英特尔)-美国Marvell(俊茂微电子)-美国SiRF(瑟夫)-美国Synaptics(新思)-美国HP(惠普)-美国4、软件公司Aplix-日本Ascender-美国Skype(eBay)-美国Esmertec(微迅)-瑞士LivingImage-美国NMSCommunications-加拿大NoserEngineeringAG-德国NuanceCommunication-美国PacketVideo-美国SkyPop-美国SonixNetwork-美国TheAstonishingTribe-瑞典WindRiverSystems(风河)-美国Android平台经理谈2011年Android发展路线图GoogleAndroid平台经理EricChu明白虽然android智能手机用户在快速增长,但是付费应用的交易数量却表现惨淡。在圣弗朗西斯科举行的InsideSocialApps会议上,Chu明确表示Google对付费应用交易完全不满意。虽然目前对于Google在2011年的Android发展战略仍缺乏具体地消息(Chu表示“敬请期待进一步消息”),但大致可以才想到Google会在下面几个方面发力。In——apppaymentssyste