Android
Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。目前最好的是Android2.0的摩托罗拉Droid
目录 |
Android公司介绍
国家:美国
业务:手机软件,手机操作系统
成立于:2003年
创办人:Andy Rubin,Andy McFadden、Richard Miner Chris White
中文名:安卓(官方)
简介
Andy Rubin创立了两个手机操作系统公司:Danger和Android。Danger 5亿美元卖给微软,成为了Kin,Android 4千万美元卖给Google。它采用软件堆层(Software Stack,又名软件叠层)的架构,主要分为三部分。底层以Linux内核工作为基础,由C语言开发,只提供基本功能;中间层包括函数库Library和虚拟机Virtual Machine,由C++开发。最上层是各种应用软件,包括通话程序,短信程序等,应用软件则由各公司自行开发,以Java作为编写程序的一部分。不存在任何以往阻碍移动产业创新的专有权障碍,号称是首个为移动终端打造的真正开放和完整的移动软件。
Google通过与软、硬件开发商、设备制造商、电信运营商等其他有 关各方结成深层次的合作伙伴关系,希望借助建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。
Android 作为Google企业战略的重要组成部分,将进一步推进“随时随地为每个人提供信息”这一企业目标的实现。全球为数众多的移动电话用户正在使用各种基于Android 的电话。谷歌的目标是让(移动通讯)不依赖于设备甚至平台。出于这个目的,Android 将补充,而不会替代谷歌长期以来奉行的移动发展战略:通过与全球各地的手机制造商和移动运营商结成合作伙伴,开发既有用又有吸引力的移动服务,并推广这些产品。
架构详解
- Linux Kernel
Android基于Linux 2.6提供核心系统服务,例如:安全、内存管理、进程管理、网络堆栈、驱动模型。Linux Kernel也作为硬件和软件之间的抽象层,它隐藏具体硬件细节而为上层提供统一的服务。分层的好处就是使用下层提供的服务而为上层提供统一的服务,屏蔽本层及以下层的差异,当本层及以下层发生了变化不会影响到上层。也就是说各层各尽其职,各层提供固定的SAP(Service Access Point),专业点可以说是高内聚、低耦合。
- Android Runtime
Android包含一个核心库的集合,提供大部分在Java编程语言核心类库中可用的功能。每一个Android应用程序是Dalvik虚拟机中的实例,运行在他们自己的进程中。Dalvik虚拟机设计成,在一个设备可以高效地运行多个虚拟机。Dalvik虚拟机可执行文件格式是.dex,dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。 大多数虚拟机包括JVM都是基于栈的,而Dalvik虚拟机则是基于寄存器的。两种架构各有优劣,一般而言,基于栈的机器需要更多指令,而基于寄存器的机器指令更大。dx 是一套工具,可以将 Java .class 转换成 .dex 格式。一个dex文件通常会有多个.class。由于dex有时必须进行最佳化,会使文件大小增加1-4倍,以ODEX结尾。 Dalvik虚拟机依赖于Linux 内核提供基本功能,如线程和底层内存管理。
- Libraries
Android包含一个C/C++库的集合,供Android系统的各个组件使用。这些功能通过Android的应用程序框架(application framework)暴露给开发者。
- Application Framework
通过提供开放的开发平台,Android使开发者能够编制极其丰富和新颖的应用程序。开发者可以自由地利用设备硬件优势、访问位置信息、运行后台服务、设置闹钟、向状态栏添加通知等等,很多很多。 开发者可以完全使用核心应用程序所使用的框架APIs。应用程序的体系结构旨在简化组件的重用,任何应用程序都能发布他的功能且任何其他应用程序可以使用这些功能(需要服从框架执行的安全限制)。
这一机制允许用户替换组件。 所有的应用程序其实是一组服务和系统,包括: 视图(View)——丰富的、可扩展的视图集合,可用于构建一个应用程序。包括包括列表、网格、文本框、按钮,甚至是内嵌的网页浏览器 内容提供者(Content Providers)——使应用程序能访问其他应用程序(如通讯录)的数据,或共享自己的数据 资源管理器(Resource Manager)——提供访问非代码资源,如本地化字符串、图形和布局文件 通知管理器(Notification Manager)——使所有的应用程序能够在状态栏显示自定义警告 活动管理器(Activity Manager)——管理应用程序生命周期,提供通用的导航回退功能。
- Applications
Android装配一个核心应用程序集合,包括电子邮件客户端、SMS程序、日历、地图、浏览器、联系人和其他设置。所有应用程序都是用Java编程语言写的。更加丰富的应用程序有待我们去开发! 从上面我们知道Android的架构是分层的,非常清晰,分工很明确。Android本身是一套软件堆迭(Software Stack),或称为「软件迭层架构」,迭层主要分成三层:操作系统、中间件、应用程序。
历史
开发
Google于2005年并购了成立仅22个月的高科技企业Android,展开了短信、手机检索、定位等业务,同时基于Linux的通用平台也进入了开发。
2008年,Patrick Brady于Google I/O 演讲“Anatomy & Physiology of an Android”,并提出的 Android HAL 架构图。HAL 以 *.so 档的形式存在,可以把 Android framework 与 Linux kernel 隔开。
2010年2月3日,Linux内核开发者Greg Kroah-Hartman将Android的驱动程序从Linux内核“状态树”(“staging tree”)上除去,从此,Android与Linux核心开发分道扬镳。
公布前的传闻
Google的东南亚销售与营运常务董事Richard Kimber曾说:"At this point in time, we are very focused on the software, not the phone.(目前我们完全专注于软件而非电话)"。可是Google并未正式否认正在制作电话的传闻,Google可能与一家硬件生产商合作创作Google Phone。
传言指出Google Phone将提供完全免费的服务,Google会通过广告获取收益。Google Phone的发布日期预期为2009年。
升级
Android系统今后将继续每半年一次的升级步伐,分别定在每年的夏天和年终。每代Android系统都将以甜点命名,比如1.5版叫做Cupcake(纸杯蛋糕),1.6版为Donut(甜甜圈),然后是2.1版的Éclair(法式奶油夹心甜点),2.2版的Froyo(冷冻乳酪)和2.3版的Gingerbeard(姜饼)。以C D E F G字头顺序排列。Donut将把社交网络功能作为升级重点,在“手机的各种体验中”都增加社交网络元素。
对手机业界的影响
已经与Sony Ericsson、HTC、NTT DoCoMo、KDDI、Motorola等世界通信领域34家公司于免费提供达成一致。今后对于移动通信的影响势必会进一步体现出来。但是如此广泛公司的同盟是否能够有效运作及以持久值得拭目以待。
发布
| 1.5 (Cupcake) 基于Linux Kernel 2.6.27 |
2009年4月30日,官方1.5版本(Cupcake)的Android发布。主要的更新如下: |
|---|---|
| 1.6 (Donut) 基于 Linux Kernel 2.6.29 |
2009年9月15日,1.6(Donut)版本软件开发工具包发布。主要的更新如下: |
| 2.0/2.0.1/2.1 (Eclair) 基于Linux Kernel 2.6.29 |
2009年10月26日,2.0(Eclair)版本软件开发工具包发布。主要的更新如下:
|
| 2.2/2.2.1 (Froyo) 基于Linux Kernel 2.6.32 |
2010年5月20日,2.2(Froyo)版本软件开发工具包发布。
|
| 2.3 (Gingerbread) 基于Linux Kernel 2.6.33 |
已确定新功能:
|
| 3.0 (Honeycomb) |
未确定新功能:
|
| 4.0 (Ice Cream) |
