多图揭秘Mango(转)
http://www.wpmind.com/dev/2011/06/news/2011/04/14/deep-in-mango.html
MIX11大会上抛出的Mango的一则又一则消息已经让你眼花缭乱了吧!嘿,是的,在Mango中加入了非常多的新特性,让我们从Joe Belfiore的一张PPT说起仔细的刨析一下Mango中都带来了些啥好东西吧。
这张PPT列出了部分在Mango中得到增强的内容,不过不要被这些密密麻麻的单词吓到哦~
1. Push Notifications:推送通知是微软提供的一种从服务器端向Windows Phone手机主动推送消息的机制。
Push Notification有三种:Toast notification是在手机屏幕的顶端给出提示信息;而Tile updates则是修改主界面上的Live Tiles(可以修改背景图片,文字,数字);Raw notification是推送原始的数据到客户端程序中。微软并没有过多描述Push notification带来了多少更新,但是从演示中我们看到在Mango中应用程序可以有多个Live Tiles(如下图中的Amazon客户端),而这些Live tiles中可以展现从服务器中推送过来的不同内容。
2. Geo-location:Windows Phone 7中本身就有Geo-location的API,在keynote中并没有提到Geo-location的改进。不过由于Mango中会集成IE9内核的浏览器所以geo-location自然也会带入到Mango中的浏览器。
3. Alarms:在目前开发人员并不能访问Calendar的数据。在Mango中将会提供相应的接口使得在你的应用程序中可以访问日程安排的数据。在Joe的一个名为Qantas的航班助理类的应用程序演示中就有这样的演示。
4. Live Tiles: Live Tiles最大的改变就是可以允许每个程序都有多个Live Tiles,而不同的Tile则可以跳转到不同的页面。在上面的Amazon的程序中我们已经看到它有两个live tiles存在主界面中,以及上面提及的Qantas应用程序也可以把自己的不同航班信息都用tiles的形式固定在主界面上。
5. HTML5: Mango中将会使用和桌面版IE9一样内核的浏览器,也就是终于正式支持HTML5。得益于IE9的GPU加速功能,在Joe的演示中同样一个测试Mango上的浏览器的速度远远超过Android和iOS。如下图所示:iOS的FPS只有可怜的2,而Android为11,使用了IE9内核的Mango上的浏览器达到了26.
请注意下图中的IE9的地址栏已经挪到了浏览器的下方这样便于用户来输入地址。但是说实话WPMind并不推崇这个新的布局。试想一下你在手机上使用浏览器最常用的菜单或者命令是什么?对我来说最常用的功能是多标签页面的切换以及打开收藏夹来选取已经收藏的网址。在手机上有多少人每次上网都是去辛辛苦苦的输入那么一长串的网址呢?很可惜,产品组的设计人员为了所谓的“便于输入”而将最常用的功能隐藏到ApplicationBar的菜单里面,不得不说这是一个倒退。
6. Live tasks:说实话在Joe的演示中似乎没有提及这个名词,所以WPMind不敢妄自猜测。
7. Background file transfer:后台的文件传输功能,开发人员可以使用这些API在后台自动从远程服务器下载文件内容。例如你想要做一个下载管理软件或者说在后台同步自己的软件的数据的话这是一个很有用的服务。
8.Deep Linking:Deep Linking在Joe的演示中多次展现。现在的Windows Phone 7的主界面的Tile只能指向某个应用程序的开始界面,就像是一个快捷方式一样。但是Deep Linking可以指向程序中的任何一个界面,同时还可以传递参数进去。例如Joe演示了(见下图)从Search中的结果直接打开IMDB应用程序中关于某个电影的详细页面;以及上面提到过的Amazon的第二个Tile可以直接打开Amazon客户端中的扫描二维码的界面;当然还有上面的Qantas应用程序的有关具体的航班信息的Tiles。
9. More Language:在Mango中将会新增加16中语言,包括现在的6种总共支持16种语言文字。当然,其中包含了大家都非常关注的简体中文。
10. New Countries:在Mango上市的时候,可以提交应用的国家和地区将会从现在的30个提升到38个,而支持用户购买应用的国家和地区将会从16个提升到35个。
11.Fast App Resume: 基于墓碑机制的应用程序切换机制一直深受人诟病,虽然它带来了一定的安全性和系统的稳定性,但是由于其切换应用程序的速度过于缓慢所以深受诟病。在Mango中实现了真正的多任务,程序被切换到后台的时候并没有直接被关闭而是驻留在内存中,在系统判定资源不足的时候才会转向通过墓碑机制来处理。从而使得在Mango上的真正的多任务和快速的应用程序切换成为可能。用户在需要切换应用程序的时候,只需要长按Back键就会呼出一个卡片似的界面,用户可以左右滑动来切换自己需要运行的程序。
12.Gryo:现在的Windows Phone 7中并没有Gryo(陀螺仪),在Mango中将会增加对于Gryo的支持。所以,WPMind有理由相信在Mango上市的时候会有新的Windows Phone的硬件规范出现。
13. Background Audio:由于增加了真正的多任务的支持,对于音乐/视频类的应用来说有个需求就是当程序切换到后台的时候还能够继续播放音乐,而用户还可以对正在播放的音乐进行简单的控制。通过Background Audio使得音乐类应用的可用性更加强。
14. Search Extras:Windows Phone中高度整合了Bing Search,在搜索结果中可以根据具体的内容有一些定制化的UI。例如在搜索电影的时候,会有专门的Movie Card来显示有关电影的内容。而且还可以使用上面提到的Deep Linking技术直接连接到本地的应用程序(例如IMDB)。
15. Structured Storage:没有本地的数据库解决方案这估计也是Windows Phone 7被开发者所指责的最大的问题之一,所以出现了许多的第三方的数据库解决方案。而这些解决方案无在乎使用Silverlight的本地存储来实现,其文件读写效率都不甚理想。在Mango中微软终于下定决心将SQL CE再次的引入了Windows Phone。开发人员可以方便的使用Linq to SQL来访问SQL CE中的数据。
16.Camera:现在的Windows Phone 7中开发人员无法直接访问到Camera的数据的,只能调用系统的拍照功能让用户拍照然后拿到拍照后的结果。开发人员是完全拿不到摄像头的实时元数据的,现在热火朝天的实景增强类应用在Windows Phone 7上就悲剧了,而只有OEM厂商才有权限(甚至就连微软自己的Microsoft Tag Reader都是先拍照然后拿图片来解码,汗。。。)。在Mango中终于将摄像头的实时数据公开给应用程序,这样我们相信在Mango上将会有大量的摄像头类应用出现。
17. Sockets:目前Windows Phone上的应用要访问网络只能通过http协议来进行,对于一些网络通信需求比较高的应用(例如聊天、游戏)来说就很痛苦了。在Mango中终于加入了Socket的支持,从而使得应用程序可以直接通过sokcets来和其他的服务器通讯。下图则演示了一款使用了sockets和服务器通讯的IRC客户端(有人知道什么是IRC么?嘿嘿)和Kik Messenger。
18. Backgroud Agents:这是Mango中多任务支持的很重要的组成部分,当程序退出的时候通过Background Agents也能够继续执行一些后台任务(类似于Windows的服务?)。
19.Compass:目前Windows Phone 7中并没有公开Compass的API接口,在Mango中将会公布Compass API。
20. Multi-tasking:其实这就是对于多任务的一个总的说法,通过Backgroun Agents, Background Audio, Background File transfer,Fast app resume等服务使得Windows Phone 有了真正的多任务的能力。
21. Montion Sensor:从Joe的描述中似乎Mango中对于重力感应、加速度、陀螺仪等做了高度的封装从而使得开发人员可以方便的在程序中感应手机的移动,而不需要自己去一个一个的获取不同的传感器的状态来判断移动的动作。
22. Silverlight + XNA: Silverlight是Windows Phone 7上主要用于开发应用程序的一套框架,他来源于桌面版的Silverlight;而XNA是早期用来开发XBox以及Zune上的游戏的一套框架。二者都是使用托管代码,但是你的程序要么是Silverlight的要么XNA的二者不能混合起来。在Mango中将允许在一个程序中同时使用Silverlight和XNA。如下图所示,程序界面的上半部分是XNA所渲染的3D模型,而下方的按钮则是Silverlight控件。
23. Picker:在Windows Phone 7中提供了大量的Launcher和Chooser让开发者可以方便的调用系统的功能,例如选择电话号码,选择相片等等。在Mango中将会对这部分进行更进一步的增强提供更多的Launcher和Chooser。
一口气介绍了这么多了觉得不错吧?其实还远远不止这些。在Joe的演示中再仔细挖掘挖掘还有不少有意思的内容,例如:
当应用程序安装的过多的时候,在应用程序列表中找到你所需要的程序就是一个麻烦的事情。在Mango中的应用程序列表中提供了程序的搜索功能,点击左箭头下方的搜索按钮即可呼出搜索界面,同时在搜索界面中如果找不到你想要的程序也可直接跳转到Marketplace中进行搜索:
在应用程序列表中也有着和People Hub中类似的首字母快捷跳转按钮。点击这些快捷按钮也可以迅速的按照程序的首字母来定位:
Marketplace中的搜索功能现在将应用程序、音乐和podcast通过枢轴视图区分开,避免了现在所有内容都混在一起给用户造成的不便。
对于Marketplace中的应用程序详细页面,现在也做了改进。之前Windows Phone 7的Marketplace中的应用程序详细页面是自上往下的滚动的一个长页面,而在Mango中使用了枢轴视图来将不同的数据放到不同的视图中。
点击下载并确定后,该程序会马上出现在应用程序列表(或者 Game Hub中),并显示一个下载的进度条,从而让你随时知道下载的状态。
在Mango中加入了亚洲语系的支持,例如简体中文、韩文、日文等。大家会发现在Mango中的锁屏界面这些亚洲语系也有所不同哦。以前的日期和星期几现在以竖排的形式摆放在右上方。这里没有简体中文的截图,不过想必也是这种效果。
Mango给大家带来了这么多新的特性,相信各位开发人员已经迫不及待的想要了解其中的详情。不要着急,在5月份微软将会放出Mango的开发工具和SDK。新的工具也有许多非常赞的功能,例如加速度模拟和地理位置的模拟。
而且新的工具中提供了Windows Phone应用程序的性能分析工具,使得开发人员非常方便的了解并优化自己的程序的内存占用情况、加载速度等等。
好了,就先介绍到这里。在这几天的MIX大会上还有许多关于Windows Phone相关的课程,希望能够有更多的内容出来。让我们一起耐心等待Mango的出现吧!