浅谈智能手机发展趋势
浅谈智能手机发展趋势
给想买手机但有不懂行的人一点建议,就当前应用系统而言,
一.google公司Android最为广泛,它以免费软件之多和操作之简便的优点迅速的风靡全球Android是一种以Linux为基础的开放源码操作系统,主要使用于便携设备。目前尚未有统一中文名称,中国大陆地区较多人使用安卓(非官方)或安致(官方)。Android操作系统最初由AndyRubin开发,最初主要支持手机。2005年由Google收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上。Android的主要竞争对手是苹果公司的iOS以及RIM的BlackberryOS。2011年第一季度,Android在全球的市场份额首次超过塞班系统(Symbin),跃居全球第一。2011年11月数据,Android占据全球智能手机操作系统市场52.5%的份额,中国市场占有率为58%。主要手机品牌有HTC/MOTO/三星,现在国产的小米手机在这方面配置颇佳,另外国产魅族也不错
中文名:安卓、安致
外文名:android
开发商:google/开放手持设备联盟
发行商:google
发行时间:2008年9月23日
编程语言:C/C++(底层)
java等(应用层)
源码模式:混合(自由免费,开放源码)
包类型:apk
支持平台:arm,mipx,x86
内核类:整块性核心(linux)
二.IOS操作系统
iOS是由苹果公司开发的手持设备操作系统。苹果公司最早于2007年1月9日的Macworld大会上公布这个系统,最初是设计给iPhone使用的,后来陆续套用到iPodtouch、iPad以及AppleTV等苹果产品上。iOS与苹果的MacOSX操作系统一样,它也是以Darwin为基础的,因此同样属于类Unix的商业操作系统。原本这个系统名为iPhoneOS,直到2010年6月7日WWDC大会上宣布改名为iOS。
一些相关介绍iOS最早于2007年1月9日的苹果Macworld展览会上公布,随后于同年的6月发布的第一版iOS操作系统,当初的名称为“iPhonerunsOSX”。
最初,由于没有人了解“iPhonerunsOSX”的潜在价值和发展前景,导致没有一家软件公司、没有一个软件开发者给“iPhonerunsOSX”开发软件或者提供软件支持。于是,苹果公司时任CEO斯蒂夫.乔布斯说服各大软件公司以及开发者可以先搭建低成本的网络应用程序(WEBAPP)来使得它们能像iPhone的本地化程序一样来测试“iPhonerunsOSX”平台。
2007年10月17日,苹果公司发布了第一个本地化IPhone应用程序开发包(SDK),并且计划在2月发送到每个开发者以及开发商手中。
2008年3月6日,苹果发布了第一个测试版开发包,并且将“iPhonerunsOSX”改名为“PhoneOS”。
2008年9月,苹果公司将iPodtouch的系统也换成了”iPhoneOS“。
2010年2月27日,苹果公司发布iPad,iPad同样搭载了”iPhoneOS”。这年,苹果公司重新设计了“iPhoneOS”的系统结构和自带程序。
2010年6月,苹果公司将“iPhoneOS”改名为“iOS”,同时还获得了思科iOS的名称授权。
2010年第四季度,苹果公司的iOS占据了全球智能手机操作系统26%的市场份额。
2011年10月4日,苹果公司宣布iOS平台的应用程序已经突破50万个。最新操作系统版本北京时间6月7日凌晨,苹果2011年度的WWDC大会(WorldwideDevelopersConference苹果电脑全球研发者大会)就在旧金山的MosconeWest会议中心举行,现场有5200人到场。本次发布会上,scottForstall正式公布了iOS设备至今已经销售了2亿台,占全球移动操作系统44%份额,iPad自发布以来,14个月间售出2500万台。更重要的是,iOS5移动操作系统来了,全新的IOS5系统拥有200个新功能特性。北京时间2011年10月13日凌晨,苹果移动操作系统iOS5正式在全球范围内推出。
iOS5最重要的一点更加专注于云计算服务(即苹果所说的iCloud),包括像音乐储存和寻找家人和朋友的位置服务等等。除此之外,苹果还可能会在iOS5系统中引入采取类似Android系统的9点自定义触控解锁方式,这种自定义的滑动解锁对触屏设备来说是一种较为理想的加密方式。
在WWDC2011大会第一日,苹果正式宣布iOS5系统发布,并于今年秋季提供正式版更新与下载。在本次升级的iOS5系统中,有12项重点升级,并且提供了200多项提升。
iOS5系统12项重点更新:
1、通知中心--整合短信、邮件、通话等多种原生程序通知为一体,同时支持第三方程序的通知。
2、iBook内支持杂志购买。
3、Twitter嵌入iOS5系统,用户可以随时将照片等内容直接上传至Twitter,有例如在联系人中可以找到Twitter好友信息。不过这项功能目前在国内还是比较鸡肋的。
4、Safari浏览器优化--书签里加入了阅读列表功能和标签功能,多个标签之间的切换更自由。
5、Reminders提醒功能--它可以在多个设备上同步。
6、相机功能提升--用户可以在不解锁的情况下调用相机,并且可以使用音量键作为相机快门,同时可以在手机上直接处理图片,如消除红眼,调整图片大小等。
7、Mail--新的邮件功能提供了字典等功能,邮件分类更明确,并且在iPad上,键盘更适合拇指操作。
8、PCFree无线传输,移动端为ios5的用户可以摆脱数据线,通过Wifi与iTunes同步。
9、GameCenter更新,用户可以在GameCenter账号上使用自己的头像,并可以直接在GameCenter中购买应用程序。
10、iMessage--所有ios5用户通过3G或者Wifi进行“短信交流”,俨然一个文字版的“FaceTime”。11、ipad支持可分离式键盘--可将显示屏上的虚拟键盘在显示屏左下方和右下方分为两部分,更方便于双手打字。
12.更新了中文与日文的输入法。iphone4s的siri语音控制功能暂时未出现在ios5上。同时支持iOS5的设备有iPhone3GS、iPhone4、iPhone4s、iPad/iPad2,以及三、四代iPodTouch。
三。WindowsPhone7是微软公司发布的一款手机操作系统,它将微软旗下的XboxLIVE游戏、Zune音乐、MSN与独特的视频体验整合至手机中。2010年10月11日晚上9点30分,微软公司正式发布了智能手机操作系统WindowsPhone7。诺基亚将此系统做为其主要智能手机系统并与微软深度合作共同研发相互配合,建立庞大的生态系统。2011年9月27日,微软公司正式发布了WindowsPhone系列的重大更新:WindowsPhone7.5(芒果)。WindowsPhone系列的竞争对手只有苹果公司的iOS和谷歌公司的Android。WindowsMobile是微软针对移动产品而开发的手机操作系统,而在WindowsMobile6.5的发布同时,微软宣布以后的WindowsMobile产品将改名为WindowsPhone,以改变现在落后的形象。WindowsMobile捆绑了一系列针对移动设备而开发的应用软件,这些应用软件创建在MicrosoftWin32API的基础上。可以运行WindowsMobile的设备包括PocketPC、Smartphone和PortableMediaCenter。该操作系统的设计初衷是尽量接近于桌面版本的Windows。新继任者WindowsPhone7出现后,WindowsMobile系列正式退出手机系统市场。
四。Symbian系统是塞班公司为手机而设计的操作系统。2008年12月2日,诺基亚收购塞班公司,并将Symbian转移至塞班基金会。2011年,诺基亚称Symbian只对企业开源,塞班开源变成只是种口号。由于对新兴技术支持欠佳,塞班占智能手机的市场份额日益萎缩。截止至2011年11月,塞班系统的全球市场占有量已从2006年三季度的72.8%逐年下降至2011年三季度的22.1%,已被安卓超过,中国市场占有率则降至2011年第三季度的23%。
这里重点介绍Android因为当前我国市场,包括国外都是市场占有率最高的,本人又在嵌入式开发方向努力学习,就是以Linux为基础的开放源码操作系统Google收购了成立仅22个月的高科技企业Android。
2007年事件
11月5日,Google公司正式向外界展示Android操作系统。
11月5日,Google与34家手机制造商、软件开发商、电信运营商和芯片制造商共同创建开放手持设备联盟。
2008年事件
5月28日,PatrickBrady于GoogleI/O大会上提出AndroidHAL架构图。
8月18日,Android获得美国联邦通信委员会的批准。
9月22日,谷歌正式对外发布第一款Android手机——HTCG1。
9月23日,谷歌发布Android1.0。
9月24日,全球业界都表示不看好Android操作系统,并且声称最多1年,Android就会被Google关闭。
2009年事件
4月30日,Android1.5正式发布。
5月10日,HTCG1和HTCG2市场大卖,成为仅次于iPhone的热门机型。
9月25日,Android1.6正式发布。
9月29日,HTCHeroG3广受欢迎,成为全球最受欢迎的机型。
10月28日,Android2.0智能手机操作系统正式发布。
11月10日,由于Android的火热,Android平台出现第一个恶意间谍软件:MobileSpy,该程序会自动记录用户所输入的任何信息并发送到黑客的邮箱中,还可以视频录下用户的所有操作过程。2010年事件
1月7日,Google发布了旗下第一款自主品牌手机:Nexusone(HTCG5)。
1月,谷歌与Linux基金会就谷歌修改了Linux内核而产生了矛盾。
2月3日,Linux内核开发者GregKroah-Hartman将Android的驱动程序从Linux内核“状态树”上除去,从此,Android与Linux开发分道扬镳。
5月19日,Google正式对外发布Android2.2智能操作系统。
5月20日,Google对外正式展示了搭载Android系统的智能电视-GoogleTV,该电视为全球首台智能电视。
7月1日,Google宣布正式与雅虎、亚马逊合作,并且在Android上推出多项Kindle服务和雅虎服务。
7月9日,美国NDP集团调查显示,Android系统已占据了美国手机市场28%的份额,全球17%的市场份额。
8月12日,Android平台出现第一个木马病毒:Trojan-SMS.AndroidOS.FakePlayer.a,该木马病毒会伪装成应用程序,当用户不小心安装之后,它便会疯狂地发送短信,使用户的手机开通高额的收费服务。9月,Android应用数量超过9万个。
9月21日,Google对外公布数据,每日销售的Android设备的新用户数达到20万。
10月26日,Google宣布Android达到第一个里程碑:电子市场上的Android应用数量达到10万个。
12月7日,Google正式发布Android2.3操作系统。
2011年事件
1月,Android应用数量超过20万。
1月,Google对外公布数据,每日Android设备的新用户数达到30万。
2月2日,Android3.0正式发布。
6月,Android在日本的智能手机操作系统市场占有率达到57%。
7月,Android在欧洲的智能手机操作系统市场占有率达到了22.3%
7月,Google对外公布数据,Android每天的新用户达到55万,Android设备用户总数达1.35亿。
8月,谷歌收购摩托罗拉移动。
8月2日,Android手机已占据全球智能机市场48%的份额,并在亚太地区市场占据统治地位,终结了Symbian(塞班系统)的霸主地位,跃居全球第一。
8月,Android在韩国的智能手机操作系统市场占有率达到了95%。
8月,Android系统在35个国家市场占有率第一,平均市场占有率达到48%。
8月,Android系统成为亚太地区第一大系统,市场占有率为亚太地区第一大。
9月,数据显示,Android应用数目已经达到48万。
9月,Android在美国的智能手机操作系统市场占有率达到43%。
10月19日,谷歌正式发布Android4.0操作系统。
11月15日,Android在中国大陆的智能手机操作系统市场占有率达到了58%。
11月18日,美国NPD数据显示,Android和iOS平台上的游戏占有率都首度超过任天堂的DS掌机和索尼的PSP掌机,手机游戏玩家也超过了掌机玩家,游戏开发商更倾向于向Android和iOS手机上开发游戏。
11月18日,谷歌报告显示,通过谷歌服务器激活的Android设备用户总数已经超过2亿,每天通过谷歌服务器激活的新用户数超过55万,而这仅仅是通过谷歌服务器激活的用户设备数。
一2009年4月30日,官方1.5版本(Cupcake纸杯蛋糕)的Android发布。主要的更新如下:
1、拍摄/播放影片,并支持上传到Youtube
2、支持立体声蓝牙耳机,同时改善自动配对性能
3、最新的采用WebKit技术的浏览器,支持复制/贴上和页面中搜索
4、GPS性能大大提高
5、提供屏幕虚拟键盘
6、主屏幕增加音乐播放器和相框widgets
7、应用程序自动随着手机旋转
8、短信、Gmail、日暦,浏览器的用户接口大幅改进,如Gmail可以批量删除邮件
9、相机启动速度加快,拍摄图片可以直接上传到Picasa
10、来电照片显示些版本:2008年9月发布的Android第一版
2009年9月15日,1.6(Donut甜甜圈)版本软件开发工具包发布。主要的更新如下:
1、重新设计的AndroidMarket手势
2、支持支持CDMA网络
3、文字转语音系统(Text-to-Speech)
4、快速搜索框
5、全新的拍照接口
6、查看应用程序耗电
7、支持虚拟私人网络(VPN)
8、支持更多的屏幕分辨率。
9、支持OpenCore2媒体引擎
10、新增面向视觉或听觉困难人群的易用性插件
2009年10月26日,2.0(Eclair松饼)版本软件开发工具包发布。主要的更新如下:
1、优化硬件速度
2、"CarHome"程序
3、支持更多的屏幕分辨率
4、改良的用户界面
5、新的浏览器的用户接口和支持HTML5
6、新的联系人名单
7、更好的白色/黑色背景比率
8、改进GoogleMaps3.1.2
9、支持MicrosoftExchange
10、支持内置相机闪光灯
11、支持数码变焦
12、改进的虚拟键盘
13、支持蓝牙2.1
14、支持动态桌面的设计
2010年5月20日,2.2(Froyo冻酸奶)版本软件开发工具包发布。主要的更新如下:
1、整体性能大幅度的提升
2、3G网络共享功能。
3、Flash的支持。
4、App2sd功能。
5、全新的软件商店。
6、更多的Web应用API接口的开发。
2010年12月7日,2.3(Gingerbread姜饼)版本软件开发工具包发布。主要的更新如下:
1、增加了新的垃圾回收和优化处理事件
2、原生代码可直接存取输入和感应器事件、EGL/OpenGLES、OpenSLES。
3、新的管理窗口和生命周期的框架。
4、支持VP8和WebM视频格式,提供AAC和AMR宽频编码,提供了新的音频效果器
5、支持前置摄像头、SIP/VOIP和NFC(近场通讯)
6、简化界面、速度提升:
7、更快更直观的文字输入:
8、一键文字选择和复制/粘帖:
9、改进的电源管理系统:
10、新的应用管理方式:
2011年5月11日在GoogleI/O开发者大会宣布发布,版本主要更新如下:
Honeycomb蜂巢(改进3.0BUG)
经过优化的Gmail电子邮箱;
全面支持GoogleMaps
将Android手机系统跟平板系统再次合并从而方便开发者。
任务管理器可滚动,支持USB输入设备(键盘、鼠标等)。
支持GoogleTV.可以支持XBOX360无线手柄
2011年7月13日发布,版本更新如下:
支持7英寸设备
引入了应用显示缩放功能
2011年10月19日在香港发布,
4.0(IceCreamSandwich冰激凌三明治)版本主要更新如下:
1、全新的ui
2、全新的ChromeLite浏览器,有离线阅读,16标签页,隐身浏览模式等。
3、截图功能
4、更强大的图片编辑功能
5、自带照片应用堪比Instagram,可以加滤镜、加相框,进行360度全景拍摄,照片还能根据地点来排序
6、Gmail加入手势、离线搜索功能,UI更强大。
7、新功能People:以联系人照片为核心,界面偏重滑动而非点击,集成了Twitter、Linkedin、Google+等通讯工具。有望支持用户自定义添加第三方服务。
8、新增流量管理工具,可具体查看每个应用产生的流量。
9、正在运行的程序可以像电脑一样的互相切换
10、人脸识别功能
11、系统优化、速度更快
12、支持虚拟按键,手机可以不再拥有任何按键
13、更直观的程序文件夹:
14、平板电脑和智能手机通用
15、支持更大的分辨率
16、专为双核处理器编写的优化驱动
17、全新的18、增强的复制粘贴功能
19、语音功能
20、全新通知栏:
21、更加丰富的数据传输功能
22、更多的感应器支持
23、语音识别的键盘:
24、全新的3D驱动,游戏支持能力提升
25、全新的谷歌电子市场
26、增强的桌面插件自定义
系统架构
Android是以Linux为核心的手机操作平台,作为一款开放式操作系统,随着Android的快速发展,如今已允许开发者使用多种编程语言来开发Android应用程序,而不再是以前只能使用Java开发Android应用程序的单一局面,因而受到众多开发者的欢迎,成为真正意义上的开发式操作系统。
在Android中,开发者可以使用Java作为编程语言来开发应用程序,也可以通过NDK使用C/C++作为编程语言来开发应用程序,也可使用SL4A来使用其他各种脚本语言进行编程(如:python、lua、tcl、php等等),还有其他诸如:Qt(qtforandroid)、Mono(monoforandroid)等一些著名编程框架也开始支持Android编程,甚至通过MonoDroid,开发者还可以使用C#作为编程语言来开发应用程序。另外,谷歌还在2009年特别发布了针对初学者的AndroidSimple语言,该语言类似Basic语言。而在网页编程语言方面,JavaScript,ajax,HTML5,jquery、sencha、dojo、mobl、PhoneGap等等都已经支持Android开发。而在Android系统底层方面,Android使用C/C++作为开发语言。
应用程序(部分)
Java开发方面
Android支持使用Java作为编程语言来开发应用程序,而Android的Java开发方面从接口到功能,都有层出不穷的变化。考虑到Java虚拟机的效率和资源占用,谷歌重新设计了Android的Java,以便能提高效率和减少资源占用,因而与J2ME等不同。
Android结构其中Activity等同于J2ME的MIDlet,一个Activity类(Class)负责创建视窗(Windows),一个活动中的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。
C/C++开发方面
早期的Android开发只支持Java作为编程语言开发应用程序,因而使得其他语言开发者只能望而却步。2010年4月,谷歌正式对开发者发布了AndroidNDK,NDK允许开发者使用C/C++作为编程语言来为Android开发应用程序,初版的NDK使得开发者看到了C/C++在Android开发中的希望。
但是,当前版本的NDK在功能上还有很多局限性:NDK并没有提供对应用程序生命周期的维护;NDK也不提供对Android系统中大量系统事件的支持;对于作为应用程序交互接口的UIAPI,当前版本的NDK中也没有提供。但是相对于初版的NDK,现在的NDK已经进行了许多重大的功能改进。由此可见,NDK仍然需要完善和发展,相信未来随着NDK的发展,NDK可以做得更多更好。
中介软件
操作系统与应用程序的沟通桥梁,应用分为两层:函数层(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格式的文件。
硬件抽像层
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本身是一个权限分立的操作系统。在这类操作系统中,每个应用都以唯一的一个系统识别身份运行(Linux用户ID与群组ID)。系统的各部分也分别使用各自独立的识别方式。Linux就是这样将应用与应用,应用与系统隔离开。
系统更多的安全功能通过权限机制提供。权限可以限制某个特定进程的特定操作,也可以限制每个URI权限对特定数据段的访问。
Android安全架构的核心设计思想是,在默认设置下,所有应用都没有权限对其他应用、系统或用户进行较大影响的操作。这其中包括读写用户隐私数据(联系人或电子邮件),读写其他应用文件,访问网络或阻止设备待机等。
安装应用时,在检查程序签名提及的权限,且经过用户确认后,软件包安装器会给予应用权限。从用户角度看,一款Android应用通常会要求如下的权限:
拨打电话、发送短信或彩信、修改/删除SD卡上的内容、读取联系人信息、读取日程信息,写入日程数据、读取电话状态或识别码、精确的(基于GPS)地理位置、模糊的(基于网络获取)地理位置、创建蓝牙连接、对互联网的完全访问、查看网络状态,查看WiFi状态、避免手机待机、修改系统全局设置、读取同步设定、开机自启动、重启其他应用、终止运行中的应用、设定偏好应用、震动控制、拍摄图片等。
一款应用应该根据自身提供的功能,要求合理的权限。用户也可以分析一款应用所需权限,从而简单判定这款应用是否安全。如一款应用是不带广告的单机版,也没有任何附加内容需要下载,那么它要求访问网络的权限就比较可疑。