浅谈 androidios4windowsphone7 symbian3.docx
- 文档编号:29622943
- 上传时间:2023-07-25
- 格式:DOCX
- 页数:19
- 大小:1.08MB
浅谈 androidios4windowsphone7 symbian3.docx
《浅谈 androidios4windowsphone7 symbian3.docx》由会员分享,可在线阅读,更多相关《浅谈 androidios4windowsphone7 symbian3.docx(19页珍藏版)》请在冰豆网上搜索。
浅谈androidios4windowsphone7symbian3
浅谈android,ios4,windowsphone7,symbian^3
姓名lxs1989
在智能手机竞争日益白热化的今天,各大手机品牌、操作系统都使出了浑身解数,以赢得更多的用户。
苹果iPhone、谷歌GPhone、微软的WPhone、诺基亚NPhone、黑莓BPhone,联想Lephone……市场上层出不穷的“Phone”,预示着它不再是一个简单的英文单词,而是已成为当今3G时代的宠儿,让消费着恍若进入数字智能的“Phone时代”。
2010年,全球手机市场已经悄然进入“phone时代”,以互联网终端为买点的手机产品层出不穷,:
苹果iPhone、谷歌GPhone、微软的WPhone、诺基亚NPhone、黑莓BPhone,还有联想的Lephone……
据悉,目前(2010年11月)在中国国内手机市场流行的Phone手机有iPhone、WindowsPhone、GPhone、OPhone、BPhone、乐Phone等。
在这些Phone手机中,有些仅仅是一款手机,例如苹果iPhone、联想乐Phone;有些则是一个系列,例如微软WindowsPhone、谷歌GPhone以及中国移动主打的OPhone家族。
随着三星SPhone的推出,中国国内手机市场也已正式进入了“Phone"时代。
Android
Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。
AndyRubin创立了两个手机操作系统公司:
Danger和Android。
Danger5亿美元卖给微软,今年成为了Kin,Android4千万美元卖给Google。
Android是Google于2007年11月05日宣布的基于Linux平台的开源移动操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。
它采用软件堆层(SoftwareStack,又名软件叠层)的架构,主要分为三部分。
底层以Linux内核工作为基础,由C语言开发,只提供基本功能;中间层包括函数库Library和虚拟机VirtualMachine,由C++开发。
最上层是各种应用软件,包括通话程序,短信程序等,应用软件则由各公司自行开发,以Java作为编写程序的一部分。
不存在任何以往阻碍移动产业创新的专有权障碍,号称是首个为移动终端打造的真正开放和完整的移动软件。
Google通过与软、硬件开发商、设备制造商、电信运营商等其他有关各方结成深层次的合作伙伴关系,希望借助建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。
Android作为Google企业战略的重要组成部分,将进一步推进“随时随地为每个人提供信息”这一企业目标的实现。
全球为数众多的移动电话用户正在使用各种基于Android的电话。
谷歌的目标是让(移动通讯)不依赖于设备甚至平台。
出于这个目的,Android将补充,而不会替代谷歌长期以来奉行的移动发展战略:
通过与全球各地的手机制造商和移动运营商结成合作伙伴,开发既有用又有吸引力的移动服务,并推广这些产品。
Android2.2
该版本名字叫“Froyo”,中文代号称“冻酸奶”,NexusOne的用户已经开始接受Android2.2“FroYo”的无线更新,其他机型的用户应该会在短时间内获取到这一更新。
这一版本包含大量让其他手机用户垂涎三尺的更新,包括了:
Android2.2主要特性
完整的Flash10.1支持
最高5倍速度提升
最多支持8个设备连接的移动热点功能
有着专用链接的改进版主屏幕
大量Exchange支持改进,支持Exchange2010,包括远程数据抹除,自动发现服务,完整的日程表支持,全局联系人列表查找。
摄像头/视频改进,比如:
更好的屏幕控制按钮,人民群众喜闻乐见的录像时开启闪光灯进行照明的功能。
多键盘语言支持
Android云信息将应用安装在记忆卡上
蓝牙语音拨号
支持720P视频录制
Android2.3
在北京时间2010年12月7日凌晨的时候,谷歌在发布旗下第二款手机NexusS的同时,全新的谷歌Android2.3Gingerbread(姜饼)系统正式亮相。
相比2.2版本来说,新版的Android系统在多个方面都进行了有效的提升。
Android2.3升级特性
用户界面更美观
进一步提升运行速度
提升游戏体验
提升多媒体能力
增加官方进程管理
改善电源管理
NFC近场通信
全局下载管理
改进的虚拟键盘
原生支持前置摄像头
SIP网络电话
特性
·应用程序框架支持组件的重用与替换 ·Dalvik虚拟机专门为移动设备做了优化 ·内部集成浏览器该浏览器基于开源的WebKit引擎·优化的图形库包括2D和3D图形库,3D图形库基于OpenGLES1.0(硬件加速可选) ·#SQLite用作结构化的数据存储 ·多媒体支持包括常见的音频、视频和静态印象文件格式(如MPEG4,H.264,MP3,AAC,AMR,JPG,PNG,GIF) ·GSM电话(依赖于硬件) ·蓝牙Bluetooth,EDGE,3G,andWiFi(依赖于硬件) ·照相机,GPS,指南针,和加速度计(依赖于硬件) ·丰富的开发环境包括设备模拟器,调试工具,内存及性能分析图表,和Eclipse集成开发环境插件
架构
下图显示的是Android操作系统的主要组件。
每一部分将会在下面具体描述。
Android系统架构由5部分组成,分别是:
LinuxKernel、AndroidRuntime、Libraries、ApplicationFramework、Applications。
第二部分将详细介绍这5个部分。
架构详解
现在我们拿起手术刀来剖析各个部分。
其实这部分SDK文档已经帮我们做得很好了,我们要做的就是拿来主义,然后再加上自己理解。
下面自底向上分析各层。
1、LinuxKernel
Android基于Linux2.6提供核心系统服务,例如:
安全、内存管理、进程管理、网络堆栈、驱动模型。
LinuxKernel也作为硬件和软件之间的抽象层,它隐藏具体硬件细节而为上层提供统一的服务。
如果你学过计算机网络知道OSI/RM,就会知道分层的好处就是使用下层提供的服务而为上层提供统一的服务,屏蔽本层及以下层的差异,当本层及以下层发生了变化不会影响到上层。
也就是说各层各尽其职,各层提供固定的SAP(ServiceAccessPoint),专业点可以说是高内聚、低耦合。
如果你只是做应用开发,就不需要深入了解LinuxKernel层。
2、AndroidRuntime
Android包含一个核心库的集合,提供大部分在Java编程语言核心类库中可用的功能。
每一个Android应用程序是Dalvik虚拟机中的实例,运行在他们自己的进程中。
Dalvik虚拟机设计成,在一个设备可以高效地运行多个虚拟机。
Dalvik虚拟机可执行文件格式是.dex,dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。
大多数虚拟机包括JVM都是基于栈的,而Dalvik虚拟机则是基于寄存器的。
两种架构各有优劣,一般而言,基于栈的机器需要更多指令,而基于寄存器的机器指令更大。
dx是一套工具,可以将Java.class转换成.dex格式。
一个dex文件通常会有多个.class。
由于dex有时必须进行最佳化,会使文件大小增加1-4倍,以ODEX结尾。
Dalvik虚拟机依赖于Linux内核提供基本功能,如线程和底层内存管理。
3、Libraries
Android包含一个C/C++库的集合,供Android系统的各个组件使用。
这些功能通过Android的应用程序框架(applicationframework)暴露给开发者。
下面列出一些核心库:
系统C库——标准C系统库(libc)的BSD衍生,调整为基于嵌入式Linux设备 媒体库——基于PacketVideo的OpenCORE。
这些库支持播放和录制许多流行的音频和视频格式,以及静态图像文件,包括MPEG4、H.264、MP3、AAC、AMR、JPG、PNG 界面管理——管理访问显示子系统和无缝组合多个应用程序的二维和三维图形层 LibWebCore——新式的Web浏览器引擎,驱动Android浏览器和内嵌的web视图 SGL——基本的2D图形引擎 3D库——基于OpenGLES1.0APIs的实现。
库使用硬件3D加速或包含高度优化的3D软件光栅 FreeType——位图和矢量字体渲染 SQLite——所有应用程序都可以使用的强大而轻量级的关系数据库引擎
4、ApplicationFramework
通过提供开放的开发平台,Android使开发者能够编制极其丰富和新颖的应用程序。
开发者可以自由地利用设备硬件优势、访问位置信息、运行后台服务、设置闹钟、向状态栏添加通知等等,很多很多。
开发者可以完全使用核心应用程序所使用的框架APIs。
应用程序的体系结构旨在简化组件的重用,任何应用程序都能发布他的功能且任何其他应用程序可以使用这些功能(需要服从框架执行的安全限制)。
这一机制允许用户替换组件。
所有的应用程序其实是一组服务和系统,包括:
视图(View)——丰富的、可扩展的视图集合,可用于构建一个应用程序。
包括包括列表、网格、文本框、按钮,甚至是内嵌的网页浏览器 内容提供者(ContentProviders)——使应用程序能访问其他应用程序(如通讯录)的数据,或共享自己的数据 资源管理器(ResourceManager)——提供访问非代码资源,如本地化字符串、图形和布局文件 通知管理器(NotificationManager)——使所有的应用程序能够在状态栏显示自定义警告 活动管理器(ActivityManager)——管理应用程序生命周期,提供通用的导航回退功能
5、Applications
Android装配一个核心应用程序集合,包括电子邮件客户端、SMS程序、日历、地图、浏览器、联系人和其他设置。
所有应用程序都是用Java编程语言写的。
更加丰富的应用程序有待我们去开发!
从上面我们知道Android的架构是分层的,非常清晰,分工很明确。
Android本身是一套软件堆叠(SoftwareStack),或称为「软件叠层架构」,叠层主要分成三层:
操作系统、中间件、应用程序。
从上面我们也看到了开源的力量,一个个熟悉的开源软件在这里贡献了自己的一份力量。
应用程序
Android会同一个核心应用程序包一起发布,该应用程序包包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。
所有的应用程序都是用JAVA编写的。
Android应用程序框架开发者也完全可以访问核心应用程序所使用的API框架。
该应用程序架构用来简化组件软件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。
该应用程序重用机制使得组件可以被用户替换。
以下所有的应用程序都由一系列的服务和系统组成,包括:
[2] ·一个可扩展的视图(Views)可以用来建应用程序,包括列表(lists),网格(grids),文本框(textboxes),按钮(buttons),甚至包括一个可嵌入的web浏览器 ·内容管理器(ContentProviders)使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据。
·一个资源管理器(ResourceManager)提供非代码资源的访问,如本地字符串,图形,和分层文件(layoutfiles)。
·一个通知管理器(NotificationManager)使得应用程序可以在状态栏中显示客户通知信息。
·一个活动类管理器(ActivityManager)用来管理应用程序生命周期并提供常用的导航回退功能。
有关更多的细节和怎样从头写一个应用程序,请参考写一个Android应用程序部分。
Android程序库Android包括一个被Android系统中各种不同组件所使用的C/C++库集。
该库通过Android应用程序框架为开发者提供服务。
以下是一些主要的核心库:
系统C库-一个从BSD继承来的标准C系统函数库(libc),专门为基于embeddedlinux的设备定制。
媒体库-基于PacketVideoOpenCORE;该库支持录放,并且可以录制许多流行的音频视频格式,还有静态印像文件包括MPEG4,H.264,MP3,AAC,AMR,JPG,PNG。
SurfaceManager-对显示子系统的管理,并且为多个应用程序提供2D和3D图层的无缝融合。
LibWebCore-一个最新的web浏览器引擎用来支持Android浏览器和一个可嵌入的web视图。
SGL-一个内置的2D图形引擎3Dlibraries-基于OpenGLES1.0APIs实现;该库可以使用硬件3D加速(如果可用)或者使用高度优化的3D软加速。
FreeType-位图(bitmap)和向量(vector)字体显示。
SQLite-一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。
Android运行库 Android包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。
每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。
Dalvik是针对于同时高效地运行多个VMs来实现的。
Dalvik虚拟机执行.dex的Dalvik可执行文件,该格式文件针对最小内存使用做了优化。
该虚拟机是基于寄存器的,所有的类都经由JAVA汇编器编译,然后通过SDK中的dx工具转化成.dex格式由虚拟机执行。
Dalvik虚拟机依赖于linux的一些功能,比如线程机制和底层内存管理机制。
Linux内核Android的核心系统服务依赖于Linux2.6内核,如安全性,内存管理,进程管理,网络协议栈和驱动模型。
Linux内核也同时作为硬件和软件堆栈之间的硬件抽象层。
未来发展 老牌智能手机软件平台制造商Symbian发言人则表示:
Google的android只不过是另一个linux,symbian对其它软件与其形成的竞争并不感到担心。
除了北美之外,Symbian在其它地区智能手机市场都占有大部分市场份额。
与iPhone相似,Android采用WebKit浏览器引擎,具备触摸屏、高级图形显示和上网功能,用户能够在手机上查看电子邮件、搜索网址和观看视频节目等,比iPhone等其他手机更强调搜索功能,界面更强大,可以说是一种融入全部Web应用的单一平台。
但其最震撼人心之处在于Android手机系统的开放性和服务免费。
Android是一个对第三方软件完全开放的平台,开发者在为其开发程序时拥有更大的自由度,突破了iPhone等只能添加为数不多的固定软件的枷锁;同时与WindowsMobile、Symbian等厂商不同,Android操作系统免费向开发人员提供,这样可节省近三成成本。
Android项目目前正在从手机运营商、手机厂商、开发者和消费者那里获得大力支持。
谷歌移动平台主管安迪·鲁宾(AndyRubin)表示,与软件开发合作伙伴的密切接触正在进行中。
苹果iOS
简介
iOS4.1发布会
iOS是由苹果公司为iPhone开发的操作系统。
它主要是给iPhone、iPodtouch以及iPad使用。
就像其基于的MacOSX操作系统一样,它也是以Darwin为基础的。
原本这个系统名为iPhoneOS,直到2010年6月7日WWDC大会上宣布改名为iOS。
[2][3]iOS的系统架构分为四个层次:
核心操作系统层(theCoreOSlayer),核心服务层(theCoreServiceslayer),媒体层(theMedialayer),可轻触层(theCocoaTouchlayer)。
系统操作占用大概240MB的存储器空间。
基本信息
开发公司
苹果公司
操作系统家族
MacOSX/Unix-like
运作状态
支持中
源码模式
封闭源码(与开放源代码组件)
最新稳定版本
3.2.1(build7B405)(仅iPad)4.0.1(iPhone和iPodtouch)/2010-07-15
支持平台
ARMv6(iPhone及iPodtouch)
内核类
Hybrid(Darwin)
缺省用户界面
CocoaTouch(多点触控,GUI)
授权条款
专有EULA
官方网站
iPhoneDevCenter
用户界面
iOS界面
iOS的用户界面的概念基础上是能够使用多点触控直接操作。
控制方法包括滑动,轻触开关及按键。
与系统交互包括滑动(swiping),轻按(tapping),挤压(pinching)及旋转(reversepinching)。
此外,通过其内置的加速器,可以令其旋转设备改变其y轴以令屏幕改变方向,这样的设计令iPhone更便于使用。
屏幕的下方有一个home按键,底部则是dock,有四个用户最经常使用的程序的图标被固定在dock上。
屏幕上方有一个状态栏能显示一些有关数据,如时间﹑电池电量和信号强度等。
其余的屏幕用于显示当前的应用程序。
启动iPhone应用程序的唯一方法就是在当前屏幕上点击该程序的图标,退出程序则是按下屏幕下方的home键。
在第三方软件退出后,它直接就被关闭了,但在iPhone3.0及后续版本中,当第三方软件收到了新的信息时,苹果公司的服务器将把这些通知推送至iPhone或iPodTouch上(不管它是否正在运行中)。
在iPhone上,许多应用程序之间都是有联系的,这样,不同的应用程序能够分享同一个信息(如当你收到了包括一个电话号码的短信息时,你可以选择是将这个电话号码存为联络人或是直接选择这个号码打一通电话)。
支持的软件
iPhone和iPodTouch使用基于ARM架构的中央处理器,而不是苹果的麦金塔计算机使用的x86处理器(就像以前的PowerPC或[[MC68000|MC680x0]]),它使用由PowerVR视屏卡渲染的OpenGLES1.1.。
因此,MacOSX上的应用程序不能直接复制到iOS上运行。
他们需要针对iOS的ARM重新编写。
但就像下面所提到的,Safari浏览器支持"Web应用程序"。
从iOS2.0开始,通过审核的第三方应用程序已经能够通过苹果的AppStore进行发布和下载了。
iOS自带的应用程序
在4.1版本的固件中,iPhone的主接口包括以下自带的应用程序:
SMS(短信)、日历、照片、相机、YouTube、股市、地图(AGPS辅助的Google地图)、天气、时间、计算机、备忘录、系统设置、iTunes(将会被链接到iTunesMusicStore和iTunes广播目录)、AppStore、GameCenter以及联络信息。
还有四个位于最下方的常用应用程序包括有:
电话、Mail、Safari和iPod。
除了电话、短信,iPodTouch保留了大部分iPhone自带的应用程序。
iPhone上的"iPod"程序在iPodTouch上被分成了两个:
音乐和视频。
位于主界面最下方dock上的应用程序也根据iPodTouch的主要功能而改成了:
音乐、视频、照片、iTunes、GameCenter,第四代的iPodTouch更加有了相机和摄像功能!
iPad只保留部分iPhone自带的应用程序:
日历、通讯录、备忘录、视频、YouTube、iTunesStore、AppStore以及设置;四个位于最下方的常用应用程序是:
Safari、Mail、照片和iPod
Web应用程序
在2007年苹果全球开发者大会上,苹果宣布iPhone和iPodTouch将会通过Safari互联网浏览器支持某些第三方应用程序,这些应用程序被称为Web应用程序。
它们能通过AJAX互联网技术编写出来。
SDK的内容
由于iOS是从于MacOSX核心演变而来,因此开发工具也是基于Xcode。
该SDK可分类为下列几大项:
触控(CocoaTouch)多点触控事件和控制(Multi-toucheventsandcontrols)加速支持(Accelerometersupport)查看等级(Viewhierarchy)本地化(i18n)(Localization(i18n))相机支持媒体OpenAL混音及录音(Audiomixingandrecording)视频播放图像文件格式(Imagefileformats)QuartzCoreAnimationOpenGLES核心服务网络SQLite嵌入式数据库地理位置(GeoLocation)线程(Threads)OSX核心TCP/IP协议套接字(Sockets)电源管理文件系统(Filesystem)安全和Xcode工具一样,SDK开发工具中包含的iPhone模拟器用来在开发人员的电脑上模拟iPhone的外观和感觉。
最初它被称为阿斯模拟器(AspenSimulator),它被重命名于BETA2版中发布的SDK。
请注意,iPhone模拟器共不是一个模拟器用于运行x86目目标生成代码。
该SDK需要拥有英特尔处理器且运行MacOSXLeopard系统的Mac才能使用。
其他的操作系统,包括微软的Windows操作系统和旧版本的MacOSX都不被支持。
版权
SDK本身是可以免费下载的,但为了发布软件,开发人员必须加入iPhone开发者计划,其中有一步需要付款以获得苹果的批准。
加入了之后,开发人员们将会得到一个牌照,他们可以用这个牌照将他们编写的软件发布到苹果的AppStore。
发布软件一共有三种方法:
通过AppStore,通过企业配置仅在企业内部员工间应用,也可通过基于"Ad-hoc"而上载至多达100部iPhones。
这个发布iPhone软件的形式的出现使人们不能根据GPLv3的授权代码发布软件。
任何根据GPLv3任何代码的开发者也必须得到GPLv3的授权。
同时,开发商在散发布已经由GPLv3授权的应用软件的同时必须提供由苹果公司提供的密匙以允许该软件修改版本的上载。
CoreLocation
CoreLocation是MacOSX中其中一个软件框架。
它主要用来存储应用程序在iOS2.0检测设备的位置。
它作为iPhone软件路线图在2008年3月6日开发者大会上宣布,并成为了iPhone的软件开发包的一部分。
Java
苹果至今仍没有宣布任何让iPhone运行Java的计划。
但太阳微系统已宣布其将会
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 浅谈 androidios4windows phone7 symbian3