什么是Android?
Android是基于Linux内核的软件平台和操作系统,是Google在2007年11月5日公布的手机系统平台,早期由Google开发,后由开放手机联盟(英语:Open Handset Alliance)(Open Handset Alliance)开发。它采用了软件堆层(software stack,又名以软件叠层)的架构,主要分为三部分。低层以Linux内核工作为基础,只提供基本功能;其他的应用软件则由各公司自行开发,,以Java 作为编写程序的一部分。另外,为了推广此技术,Google和其它几十个手机公司建立了开放手机联盟。
Android在未公开之前常被传闻为Google电话或gPhone。大多传闻认为Google开发的是自己的手机电话产品,而不是一套软件平台。到了2010年1月,Google始发表自家品牌手机电话的Nexus One。
Android历史
开发:
Google于2005年并购了成立仅22个月的高科技企业Android,展开了短信、手机检索、定位等业务,同时基于Linux的通用平台也进入了开发。
2008 Patrick Brady于Google I/O 演讲“Anatomy & Physiology of an Android”,并提出的 Android HAL 架构图。HAL 以 .so 档的形式存在,可以把 Android framework 与 Linux kernel 隔开。
公布前的传闻:
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年。
LG宣布将于2007年第二季开始在其手提电话产品中安装Google的软件。
Android版本升级
Android系统今后将继续每半年一次的升级步伐,分别定在每年的夏天和年终。每代Android系统都将以食物命名,比如1.5版叫做 Cupcake(纸杯蛋糕),1.6版为Donut(甜甜圈),然后是Eclair(法式奶油夹心甜点)和Flan(水果馅饼)。Donut将把社交网络功能作为升级重点,在“手机的各种体验中”都增加社交网络元素。
【第一台上市的 Android 手机】
对手机行业的影响:
已经与[Sony Ericsson]、[HTC]、NTT DoCoMo、KDDI、Motorola等世界移动领域34家公司于免费提供达成一致。今后对于移动通讯的影响势必会进一步体现出来。但是如此广泛公司的同盟是否能够有效运作及以持久值得拭目以待。
发布:
1.5 (Cupcake)
基于Linux Kernel 2.6.27 2009年4月30日,官方1.5版本(Cupcake)的Android发布。主要的更新如下:
● 拍摄/回放视频,并支持上传到youtube
● 支持立体声蓝牙耳机,同时改善自动配对性能
● 最新的采用WebKit技术的浏览器,支持拷贝/粘帖和页面中搜索
● GPS性能大大提高
● 屏幕虚拟键盘
● 主屏幕增加音乐播放器和相框widgets
● 应用程序自动随着手机旋转
● 短信,Gmail,日历,浏览器的用户界面大幅改善,比如说Gmail现在可以批量删除邮件了
● 相机启动速度加快,拍摄图片可以直接上传到picasa
● 来电照片显示
1.6 (Donut)
基于Linux Kernel 2.6.29 2009年9月15日, 1.6(Donut)版本SDK发布。主要的更新如下:
● 完全重新设计的Android Market
● 手势支持
● 支持CDMA网络
● 文字转语音系统(TXT-2-speech)
● 快速搜索框
● 全新的拍照界面
● 应用程序耗电查看
● 支持VPN
● 支持更多的屏幕分辨率
● 支持OpenCore2媒体引擎
● 新增面向视觉或听觉困难人群的易用性插件
2.0/2.0.1/2.1(Eclair)
基于Linux Kernel 2.6.29 2009年10月26日, 2.0(Eclair)版本SDK发布。主要的更新如下:
● 优化硬件速度
● "Car Home"程序
● 支持更多的屏幕分辨率
● 重整界面
● 新的浏览器的用户界面和支持HTML5
● 新的联系人名单
● 更好的白色/黑色背景比率
● 改进Google Maps 3.1.2
● 支持Microsoft Exchange
● 支持内置相机闪光灯
● 数字变焦
● 改进的虚拟键盘
● 蓝牙2.1
Android的代号序列会按甜点名字中首个英文字母(C、D、E、F)的排列顺序。
下一个版本的Android将会命名为Froyo(冻酸奶,基于Linux Kernel 2.6.32)。Froyo 之后的版本的Android将会命名为Gingerbread(姜饼,基于Linux Kernel 2.6.33/34)。
应用程序
以Java为编程语言,使Android从接口到功能,都有层出不穷的变化,其中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)。
切忌贪婪,恨不得一次玩遍所有传说中的好景点,