认识Android
【本文转自www.hiapk.com安卓网】
系统简介
Android是基于Linux开放性内核的操作系统,是Google公司在2007年11月5日公布的手机操作系统。早期由原名为"Android"的公司开发,谷歌在2005年收购"Android.Inc"后,继续进行对Android系统开发运营,它采用了软件堆层(software stack,又名软件叠层)的架构,主要分为三部分。底层Linux内核只提供基本功能,其他的应用软件则由各公司自行开发,部分程序以Java编写。
2011年初数据显示,仅正式上市两年的操作系统Android已经超越称霸十年的塞班系统,使之跃居全球最受欢迎的智能手机平台。现在,Android系统不但应用于智能手机,也在平板电脑市场急速扩张。采用Android系统主要厂商包括台湾的HTC,(第一台谷歌的手机G1由HTC生产代工)美国摩托罗拉,SE等,中国大陆厂商如:华为、中兴、联想等。
系统架构
应用程序
Android以Java为编程语言,从接口到功能,都有层出不穷的变化,其中Activity等同于J2ME的MIDlet,一个 Activity 类(class)负责创建视窗(window),一个活动中的Activity就是在 foreground(前景)模式,背景运行的程序叫做Service。两者之间通过由ServiceConnection和AIDL连结,达到复数程序同时运行的效果。如果运行中的 Activity 全部画面被其他 Activity 取代时,该Activity 便被停止(stopped),甚至被系统清除(kill)。
View等同于J2ME的Displayable,程序人员可以通过 View 类与“XML layout”档将UI放置在视窗上,Android 1.5的版本可以利用 View 打造出所谓的 Widgets,其实Widget只是View的一种,所以可以使用xml来设计layout,HTC的Android Hero手机即含有大量的widget。至于ViewGroup 是各种layout 的基础抽象类(abstract class),ViewGroup之内还可以有ViewGroup。View的构造函数不需要再Activity中调用,但是Displayable的是必须的,在Activity 中,要通过findViewById()来从XML 中取得View,Android的View类的显示很大程度上是从XML中读取的。View 与事件(event)息息相关,两者之间通过Listener 结合在一起,每一个View都可以注册一个event listener,例如:当View要处理用户触碰(touch)的事件时,就要向Android框架注册View.OnClickListener。另外还有Image等同于J2ME的BitMap。
中介软件
操作系统与应用程序的沟通桥梁,应用分为两层:函数层(Library)和虚拟机(Virtual Machine)。Bionic是 Android 改良libc的版本。Android 同时包含了Webkit,所谓的Webkit 就是Apple Safari 浏览器背后的引擎。Surface flinger 是就2D或3D的内容显示到屏幕上。Android使用工具链(Toolchain)为Google自制的Bionic Libc。
Android采用OpenCORE作为基础多媒体框架。OpenCORE可分7大块:PVPlayer、PVAuthor、Codec、PacketVideo MultimediaFramework(PVMF)、Operating SystemCompatibility Library(OSCL)、Common、OpenMAX。
Android 使用skia 为核心图形引擎,搭配OpenGL/ES。skia与Linux Cairo功能相当,但相较于Linux Cairo, skia 功能还只是雏形的。2005年Skia公司被Google收购,2007年初,Skia GL源码被公开,目前Skia 也是Google Chrome 的图形引擎。
Android的多媒体数据库采用SQLite数据库系统。数据库又分为共用数据库及私用数据库。用户可通过ContentResolver类(Column)取得共用数据库。
Android的中间层多以Java 实现,并且采用特殊的Dalvik 虚拟机(Dalvik Virtual Machine)。Dalvik虚拟机是一种“暂存器型态”(Register Based)的Java虚拟机,变量皆存放于暂存器中,虚拟机的指令相对减少。
Dalvik虚拟机可以有多个实例(instance), 每个Android应用程序都用一个自属的Dalvik虚拟机来运行,让系统在运行程序时可达到优化。Dalvik 虚拟机并非运行Java字节码(Bytecode),而是运行一种称为.dex格式的文件。
硬件抽像层
Android 的 HAL(硬件抽像层)是能以封闭源码形式提供硬件驱动模块。HAL 的目的是为了把Android framework 与 Linux kernel 隔开,让 Android 不至过度依赖 Linux kernel,以达成 kernel independent 的概念,也让Android framework 的开发能在不考量驱动程序实现的前提下进行发展。
HAL stub 是一种代理人(proxy)的概念,stub 是以 *.so 档的形式存在。Stub 向 HAL“提供”操作函数(operations),并由 Android runtime 向 HAL 取得 stub 的 operations,再 callback 这些操作函数。HAL 里包含了许多的 stub(代理人)。Runtime 只要说明“类型”,即 module ID,就可以取得操作函数。
编程语言
Android 是运行于 Linux kernel之上,但并不是GNU/Linux。因为在一般GNU/Linux里支持的功能,Android 大都没有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。Android又以bionic 取代Glibc、以Skia 取代Cairo、再以opencore 取代FFmpeg 等等。Android 为了达到商业应用,必须移除被GNU GPL授权证所约束的部份,例如Android将驱动程序移到userspace,使得Linux driver 与 Linux kernel彻底分开。bionic/libc/kernel/ 并非标准的kernel header files。Android的 kernel header 是利用工具由Linux kernel header 所产生的,这样做是为了保留常数、数据结构与宏。
目前Android 的 Linux kernel控制包括安全(Security),存储器管理(Memory Management),程序管理(Process Management),网络堆栈(Network Stack),驱动程序模型(Driver Model)等。下载Android源码之前,先要安装其构建工具 Repo来初始化源码。Repo 是 Android 用来辅助Git工作的一个工具。
系统版本
很多玩家用户可能会奇怪:“为什么 Android 会用甜点作为它们系统版本的代号?”这个命名方法开始于 Andoird 1.5 发布的时候。作为每个版本代表的甜点的尺寸越变越大,然后按照26个字母数序:纸杯蛋糕,甜甜圈,松饼,冻酸奶,姜饼,蜂巢。
Android 1.1 发布时间:2008 年9月
Android 1.5 Cupcake纸杯蛋糕 发布时间:2009 年 4 月
Android 1.6 Donut甜甜圈 发布时间:2009 年 9 月发布
Android 2.0 Eclair松饼 发布时间:2009 年 10 月 26 日
Android 2.1 Eclair松饼
Android 2.1: 2009 年 10 月26 日,又一个主要版本升级以创纪录的速度放出。这次,大版本升级到了Android 2.1“Eclair.”Android 2.1主要特性:提升硬件速度更多屏幕以及分辨率选择大幅度的用户界面改良支持 Exchange活动墙纸大幅改进虚拟键盘蓝牙 2.1Google 地图
Android 2.2 Froyo冻酸奶
谷歌于北京时间2010年5月20日晚上10:30点在旧金山Moscone会展中心举办Google I/O 2010大会第二天的会议,Google正式发布了代号是“froyo 冻酸奶”的Android操作系统2.2版。
相对于上一版本的改变:1、整体性能大幅度的提升;2、3G网络共享功能;3、Flash的支持;4、App2sd功能;5、全新的软件商店;6、更多的Web应用API接口的开发。
Android 2.3 Gingerbread姜饼
北京时间2010年12月7日凌晨,Google正式对外发布了他们的下一代智能手机操作系统Android 2.3也就被大家所熟知的Android Gingerbread系统。
主要更新包括:
游戏:增加了新的垃圾回收和优化处理事件,以提高对游戏的支持能力。原生代码可直接存取输入和感应器事件、EGL/OpenGL ES、OpenSL ES。新的管理窗口和生命周期的框架。
多媒体:支持VP8和WebM视频格式,提供AAC和AMR宽频编码,提供了新的音频效果器,比如混响、均衡、虚拟耳机和低频提升。
通讯方式:支持前置摄像头、SIP/VOIP和NFC(近场通讯)
站在用户的角度看,这次更新的亮点主要有:1、简化界面、速度提升;2、更快更直观的文字输入;3、一键文字选择和复制/粘帖;4、改进的电源管理系统;5、新的应用管理方式;6、原生支持前置前置摄像头、互联网通话和NFC(近场通讯);7、系统原生支持VoIP,可以在联系人里加入它的SIP帐户,然后直接通过系统来拨打VoIP电话;8、增加下载管理器:
Android 2.4 Ice cream sandwich冰激凌三明治
预计在2011年第四季度发布。其甜品代号为 Ice cream sandwich(冰激凌三明治)。预计与2.3版本之间的变化不会太大,但是会有不少功能更新。毕竟已经采用了新的代号。
目前已知的Android 2.4带来的更新包括更多的动画特效、更快的运行速度、软件通话降噪、视频聊天等。Android 2.4系统不会是之前一直谣传的Android 3.0,其真正的版本号将会是Android 2.4。
Android 3.0 Honeycomb蜂巢
3.0系统特性:1、优化针对平板;2、全新设计的UI增强网页浏览功能;3、n-app purchases功能;4、经过优化的Gmail电子邮箱;5、全面支持GoogleMaps
Android 3.1 Honeycomb
Google发布了最新的Android3.1操作系统,新版本最大的改变是将Android手机系统跟平板系统再次合并,从而方便开发者。Android3.1相比3.0的升级有限,除了任务管理器可以滚动,支持USB 输入设备(键盘、鼠标等),另外还有,它会支持 Google TV.可以支持XBOX 360无线手柄,这个就牛掰了,大屏幕的Android平板电脑肯定会非常吃香,简直就是一台随身游戏机嘛,还是用手感最好的无线手柄的。此外就是一些widget支持的变化,能更加容易的定制屏幕widget插件。
Android历史
2008年9月22日,美国运营商德国T-Mobile在纽约正式发布第一款Android手机——T-Mobile G1。该款手机为台湾宏达电(HTC)代工制造,是世界上第一部使用Android操作系统的手机,支持WCDMA/HSPA网络,理论下载速率7.2Mbps,并支持Wi-Fi。
2009年10月28日正式发布了Android 2.0 智能手机操作系统。 2010年1月索尼爱立信首款Android机型X10上市 。
2010年1月7日,Google在其美国总部正式向外界发布了旗下首款合作品牌手机Nexus One(HTC G5),并同时开始对外发售。
2010年7月9日,美国NDP集团调查显示,Android系统已占据了美国移动系统市场28%的份额。
北京时间3月25日,据国外媒体报道,谷歌周四表示,谷歌暂停开源Android3.0,并将暂时阻止小型手机生产商使用其Android 3.0“Honeycomb”系统,期限未定。 谷歌一位发言人通过电子邮件声明称,Honeycomb是专为平板电脑而非手机设计的,在该系统以开源形式发布前,还有很多工作要做。谷歌向《商业周刊》表示,推迟发布可能达数月之久。
谷歌称:“代号为Honeycomb的Android 3.0系统,是针对大屏幕设备和改进小软件、多任务、浏览、通知和客户化等功能而设计。虽然我们很高兴为平板电脑提供这些新功能,但交付给其他设备包括手机前我们有更多的工作要做。我们决定暂不开放源代码。我们致力于将Android作为跨多设备类型的开放式平台来提供,并在准备好时公布源代码”。
这意味着小型手机制造商要使用Honeycomb将不得不等待一段时间。不过大型设备商如HTC和摩托罗拉,已经可以使用。这些设备制造商一般安装在平板电脑中。
对此,谷歌工程副总裁和Android主管安迪·鲁宾(Andy Rubin)表示:“为了制定平板电脑出货的时间表, 我们进行了一些折衷设计。我们不想思考如何在手机上运行同一个软件”。
鲁宾还表示,谷歌不想冒险“带来非常糟糕的用户体验”。今年2月在发布Honeycomb时,谷歌发言人称,目前是专为平板电脑设计,“以后这些功能将推广到手机上。手机版的新Android,可能不会被叫做“Honeycomb”,也可能是与3.0不同的版本。
Android的未来发展
虽然没有看到Gphone的真正模样,但据了解,Google的Android平台手机将在2008年下半年正式揭开面纱.对于消费者来说,Google手机将是一款通用的、功能强大的、设备完整的手机产品。 美国咨询研究集团Strategy Analytics的最新报告指出,Google最近公布的android手机软件平台,很可能在2008年时获得全球智能手机软件平台2%的份额。
然而老牌智能手机软件平台制造商Symbian发言人则表示:Google的android只不过是另一个linux,symbian对其它软件与其形成的竞争并不感到担心。除了北美之外,Symbian在其它地区智能手机市场都占有大部分市场份额。
与iPhone相似,Android采用WebKit浏览器引擎,具备触摸屏、高级图形显示和上网功能,用户能够在手机上查看电子邮件、搜索网址和观看视频节目等,比iPhone等其他手机更强调搜索功能,界面更强大,可以说是一种融入全部Web应用的单一平台。
但其最震撼人心之处在于Android手机系统的开放性和服务免费。Android是一个对第三方软件完全开放的平台,开发者在为其开发程序时拥有更大的自由度,突破了iPhone等只能添加为数不多的固定软件的枷锁;同时与Windows Mobile、Symbian等厂商不同,Android操作系统免费向开发人员提供,这样可节省近三成成本。
Android项目目前正在从手机运营商、手机厂商、开发者和消费者那里获得大力支持。谷歌移动平台主管安迪·鲁宾(Andy Rubin)表示,与软件开发合作伙伴的密切接触正在进行中。从去年11月开始,谷歌开始向服务提供商、芯片厂商和手机销售商提供Android平台,并组建“开放手机联盟”,其成员超过30家。”
posted on 2011-10-18 23:24 Android开发历程 阅读(490) 评论(0) 编辑 收藏 举报