Windows Phone 8,我们该怎么玩?

移动开发
微软6月20日正式发布了Windows Phone 8,引来了网上网下一片热议,正面和负面的评价纷飞。作为开发者,我们能够改变的东西其实很少,拥抱变化,是我们唯一的优势。所以,我们挨个梳理一下新增的功能吧。

  微软6月20日正式发布了Windows Phone 8,引来了网上网下一片热议,正面和负面的评价纷飞。有一个非常有趣的现象,第一批进入Windows Phone的开发者集体跳反,认为Windows Phone 8背离了自己的路线。

  那么,我们就来分析一下,Windows Phone 8为什么引发了如此多的讨论,以及在Windows Phone 8的时代,开发者怎么玩,而不是被人玩?

  都是内核惹得祸

  微软的发布会上首先强调的一个概念就是“Share Windows Core”,也就是说Windows Phone 8与Windows 8共享内核。很多媒体以此说,Windows Phone 8会完全兼容Windows 8的应用,这一点是错误理解。所谓共享内核,只是说Windows Phone 8和Windows 8的内核相同,但并不代表驱动程序、API、应用程序层的全部兼容。

  Windows 8 RT是Windows 历史上第一个支持ARM CPU的操作系统,所以将Windows RT的内核迁移到Windows Phone上无可厚非,毕竟Windows Phone 7的内核是Windows CE。Windows CE在1996年发布,比Symbian年纪还大,虽然经历了两次内核重写,到现在也是垂垂老矣。

  微软还是做了一些工作,至少让Windows Phone 8能够兼容所有Windows Phone 7的应用。可是操作系统是上下两个接口,上面的是API,下面的则是驱动程序。Windows RT在开发时,没有考虑要兼容Windows Phone的现有硬件,所以,Windows Phone 8也没有办法支持原有硬件。

  Windows RT是支持一系列ARM CPU的,兼容现有CPU真的这么难吗?个人认为,如果真的很容易,微软就兼容了。所以,Windows RT可能在芯片级做了一些优化,导致已有ARM CPU无法正常运行。最有可能的地方是DirectX支持,大家都知道,目前的ARM CPU是不支持DirectX的,而是支持OpenGL ES。如果将DirectX转化为OpenGL ES,势必会影响效率,所以,微软很有可能向芯片厂商施加压力,让他们原生支持DirectX。

  这一点目前还无法证实,要等支持Windows RT的ARM CPU具体规格出来后才知道,要判断也很容易,如果能够支持DirectX的Shader Language,就是芯片级支持,否则就是软件转换。

  顺便多说一句,Windows Surface选了个烫的要死的CPU,又是铝镁合金机壳,大家要小心被烫到才好,哈哈!

  好了,内核的问题就是这个样子。Windows Phone 7.8仍旧是运行在Windows CE上的,而Windows Phone 8则是运行在Windows RT内核上的。

  大家看到微软该骂的第一个地方了吧?既然Windows Phone 8的大部分功能能够跑在Windows Phone 7.8(也就是Windows CE 7)上,你闲着没事换什么内核啊?如果是Windows,你换就换吧,反正没人跟你竞争,弄烂一代,再研发新一代。可是Windows Phone还处于一个追赶的地位,在这个时候不是抓紧时间研发新功能,而是忙着换内核,分裂开发者、抛弃合作伙伴、让已有用户感觉被抛弃。以上这些损失,换来的只是,所有人聚集在Windows的大旗之下,真的值得吗?

  当技术上的选择(我没有用“失误”这个词,也许身在局外,不知道其中的无奈吧)无法挽回时,市场能力的缺失给Windows Phone钉上了最后一个棺材钉。Windows Phone 8和Windows Phone 7.8应该会出现在以后MBA课程的经典失败案例中吧?

  你哪怕叫Windows Phone 8和Windows Phone 8 Compact呢?整场发布会中,我们看不到市场部门的影子,事先也没有就Windows Phone 7.8进行过深入的讨论。从这件事上,我们就可以看到市场部门的漫不经心,真怀疑微软市场部门的钱都花到哪里去了?

  微软市场部门是隶属于产品组的,这个格局造成了很多低级的失误。每次看到一群不会讲故事的工程师在台上假装潇洒时,总会感觉到一个冷冷的目光在天上注视着他们。

  当然,微软还有机会弥补,宣布Windows Phone 7.8可以升级到Windows Phone 8的一个特殊版本,但是……有多少人会相信呢?

  谁是最大的Loser?

  对于这个问题,大家的答案一致:诺基亚。去年2月诺基亚上了微软的贼船,大家都认为是“余则成”的功劳,个人认为,这是诺基亚的必然选择,“余则成”只是执行者。过去一年中,微软和诺基亚看似紧密无间,但有几个迹象让人觉得有些隐隐不安。

  首先是Lumia 610的推出,诺基亚虽然拥有奢侈手机品牌Vertu,但主要的市场还在Feature Phone和低端智能机上,但Windows Phone并不适合开发低端智能机。其他的东西砍不掉,诺基亚只能砍内存了,内存一砍,引出了一系列麻烦,最大的新闻是愤怒小鸟无法运行。这一点上来看,诺基亚不懂智能手机。

  另外,虽然诺基亚很早就宣布要做Windows 8平板,Microsoft Surface没有选择诺基亚做为硬件合作伙伴,而是选择了更小更容易控制的Nook。从这一点上来看,固执的北欧人还是让高傲的美国人吃了一些苦头的。

  所以,这次发布会上,诺基亚的地位并不高,至少没有过去一年高。想想也是,三星、HTC都是隔岸观火,有好处就上,没好处就撤,只有诺基亚冲在前边,结果Windows Phone 8出来,只有诺基亚要面对大量无法升级Windows Phone 8的愤怒用户。

  而且最可怕的一点是,Windows Phone 8最快还有半年才能出来(个人估计更为悲观,最快8个月左右才能大量铺货),用户肯定不会购买一面世就落后的机器,而且Windows Phone 8发布会正好撞上iPhone 5。您还以为自己是当年的IT霸主啊?世界变了。

  等到Windows Phone 8出来,估计诺基亚的骨头就可以用来敲鼓了。微软延续了以往“死道友,不死贫道”的光荣传统。

  现在诺基亚仅剩的一条路就是被收购了,三星、微软都是潜在的收购者,现在90亿美金的市值,哪怕溢价50%,也就140亿美金。微软当年可是准备了400亿美金收购雅虎,Skype才花了80多亿,还有足够多的钱呢。别忘了,小米的估值还60亿美金呢,诺基亚怎么也比小米强一点吧?

  谁是第二大的Loser?

  第二个Loser是谁?我觉得是Terry Myerson,现任Windows Phone团队的老大。 Terry Myerson接替Andy Lees成为Windows Phone部门老大的时间并不长,去年12月才正式交接。关于Andy Lees的去职,坊间传说主要原因是业绩不够理想。想想这位老兄也够背的,他离开时,诺基亚的机器还没有大量铺货,今年的销量完全是因为他的贡献,成绩却归了人家。万恶的KPI啊。

  业内传闻,Andy Lees在制定Windows Phone策略时,采用的是“跟随战术”,iPhone有什么,我也有什么。看起来似乎很消极,但这正是微软打败诸多强手的杀手锏,微软的技术积累深厚、工程师队伍一流,唯一的命门就是创新性不足,跟随战术是符合微软实际的。

  多说一句,Windows Phone这个部门也是多灾多难,最早属于移动和娱乐部门,老大是Robbie Bach,一个创造了XBOX之成功和Zune之溃败的传奇人物,他离开微软前的最后一个项目是Courier电子书,一个充满想象力却生不逢时的产品。

  扯远了,从这次发布会可以看到,Terry Myerson完全抛弃了Windows Phone 7,全面倒向了Windows 8的设计。本来是自己的东西,被其他团队拿过去加工完了,自己再拿回来用。结果就是,Metro UI设计的连他妈都不认识了。更详细的描述可以参考李靖南的文章《别闹了,微软!磁贴不是这样搞的》http://apphub.fm/stop_messing_with_tile

  我们可以看到Terry Myerson抛弃了已有的Windows Phone设计,当然这可能是集体决策的结果。去年夏天,微软总部的工程师过来交流,就曾经提过一个问题“Windows Phone是否应该改成平铺式的小图标?”

  我当时的观点是,无论成败,Windows Phone要坚持自己的路走下去,Metro UI不可能让所有人都喜欢,但这个东西是非常风格化的,而且识别率非常高,虽然短期内无法被iOS和Android的用户接受,如果改回图标式UI,Windows Phone的特色就没有了,人家为什么还要买你?假以时日,Windows Phone会找到属于自己的粉丝群的。

  一年时间过去,我们可以看到Metro在被大家接受,但是这个时候,微软却自作聪明地将决定权交给了用户,让用户可以将图标缩小成平铺式,虽然可以迎合一部分用户的喜好,但是自己的风格就没了。一个平面的图标系统,能够和iOS, Android的水晶按钮比吗?

  这个其实就是典型的工程师思维,他们是从功能出发的,试图想办法解决各种需求,结果到最后做出来的东西只能是不伦不类。其实,解决80%的人的需求就好了,如果能够有80%的人买你的手机,你不就赚大了吗?

  Windows Phone 8出来,给我一个感觉,形还在,但魂已经不在了。如果说这些都是Terry Myerson带来的,也未必公平,毕竟长头发的法国帅哥还在,但我们可以猜测,在过去一年时间里,一定发生了很多事情,让一批了解Metro精髓的设计师离开了自己的位置,或者放弃了自己的坚持。也许这和Windows RT有关,但谁知道呢?

  对开发者的建议

  俱往矣,再过几年回头看时,我们可以认为Windows Phone开发者此时的吐槽,是对于微软背叛Windows Phone发展道路的一种失望,类似于失恋之后的反应。

  作为开发者,我们能够改变的东西其实很少,拥抱变化,是我们唯一的优势。所以,我们挨个梳理一下新增的功能吧。一句话,微软这次又是该干的没干,不该干的干了一大堆:

  1.IAP

  原文这里写错了,感谢 @LiveSino 的提醒,Joe Belfiore的文章中提到了支持IAP:

  http://windowsteamblog.com/windows_phone/b/windowsphone/archive/2012/06/20/announcing-windows-phone-8.aspx

  IAP有了,不过人家好几年前就搞出来的东西,弄出来也没什么好骄傲的。可是本地化要多久?人民币支付要多久?没关系,我们去赚老外的钱了。

  微软弄了个电子钱包的概念,闹了半天是NFC支付。NFC的普及至少还有两年时间,把NFC外设装进去,等着第三方帮你玩就好了,心急火燎地开始弄应用级的东西,万一不合适改操作系统啊?

  2.企业级特性

  Window Phone 8的企业级特征被加强了,想想也是,微软对于企业级服务市场最熟悉,而且微软工程师在整理需求时,会以自己所处的IT环境作为样板。你去问问,全世界有几个企业登录VPN要用门卡上的IC卡芯片!

  所以,Windows Phone 8上的企业级应用可以开始了。如同微软不会做消费者市场一样,苹果不会做企业级市场,所以还有很多企业在用Windows Mobile。将Windows Phone 8与Windows 8结合的企业级市场空间还是很大的,不过外设、VPN的问题解决了没有?

  3.游戏开发

  这次游戏开发的变化是最大的,终于支持C++了。装配脑袋的分析是最精准的,因为要换内核,如果Windows Phone 7就开放了Native API,到了Windows Phone 8就要重写,那时候引起的波澜会更大。

  对于游戏开发者来说,DirectX和Havok游戏引擎绝对是利好的消息,毕竟可以在多个平台间统一使用C++来开发游戏了。不过,基于Windows RT的Managed C++移植到其他平台上去,工作量恐怕不比C#小多少。

  在这里忍不住对XNA的事情发表个评论,虽然对XNA还没有最后的结论,但前景不妙。但用XNA和C#开发休闲类小游戏,要比DirectX容易的多吧?不支持C++的确不对,但你不能因为有了C++,就放弃对XNA的支持吧?

  那我们作为开发者应该怎么办?

  1.将Windows Phone 8看作一个新的操作系统

  其实Windows Phone 8是一个新的操作系统,只是能够兼容Windows Phone 7的部分功能。这次升级并不比Windows Mobile 6.5到Windows Phone 7的变化小。我之前曾经说过,Windows Phone 7其实是1.0版本,现在看起来,我错了,Windows Phone 7充其量是个Preview版,还是Release Preview版,考验RP的版本啊。

  所以,作为开发者,最好的办法是找到Windows Phone 8的源头——Windows 8 RT,从这里开始我们的新旅程。虽然目前还不知道Windows Phone 8对于WinRT API的支持程度如何,但是开发工具、开发语言、类库都不会脱离WinRT。从以往的经验来看,Windows Phone 8上的WinRT应该是个精简版,目前.NET和C++应该都支持,不过JavaScript支持如何就不知道了。

  想想微软的决策者们真的有点天真,大儿子用了套未经验证的技术,小儿子也一定要用,否则就不够一家子,可是要玩完一起玩完啊。大儿子身体好,经得起折腾,小儿子……

  2.继续维护Windows Phone 7.8版本

  抛弃掉已有Windows Phone 7的用户,会成为微软的又一桩罪恶,其实微软从来就不在乎已经到他的平台上来的开发者。但是,作为负责人的开发者,至少在一定的时间段内,要维护Windows Phone 7.8版本,其实Windows Phone7.8版本也是能够运行在Windows Phone 8上的。

  但如果是开发新的应用,开发者就面临一个抉择:使用Windows Phone 8 API就会不兼容Windows Phone 7,但如果使用Windows Phone 7,就会使用过时的技术。在过时的技术上投入过大,其实是对未来的犯罪。微软就是这么把开发者架在火上烤的。

  对于新应用,我的建议是看量,如果Windows Phone 8的用户量大于Windows Phone 7,我们可以采用Windows Phone 8来开发,否则停留在Windows Phone 7上是一个相对明智的选择。

  当然,如果是想占坑、或者新的应用使用了Windows Phone 8的某些新特性,那么不用犹豫,直接用就好了。

  3.支持Windows 8和Windows Phone 8

  比起Windows Phone 8与Windows Phone 7的缠绵悱恻来,Windows 8与Windows Phone8的关系倒是清晰明朗,人家才是亲兄弟,只不过Windows Phone 8继承了叔叔的家业,顺便把表弟给杀了而已。好像《哈姆雷特》的剧情啊。

  所以,如果想兼容Windows 8和Windows Phone 8,问题其实并不大。而移植的挑战可能会出现在UI上,比如,操作方式、分辨率。毕竟Windows 8是横向滚动,Windows Phone上并不适合;而Windows Phone 8设计成那个鬼样子,也跟要解决不同分辨率有关,而Windows 8解决分辨率问题的办法,其实未必适合Windows Phone 8。

  从Windows 8开始,移植到Windows Phone 8应该是一个较为理想的迁移路径,不过,中间的挑战也不小。我不相信微软能把完整的WinRT API移植到Windows Phone 8上。

  这一切只能等到Windows Phone 8的SDK出来后才知道。在夏天的结尾,好诗意的发布日期,估计今年夏天会很长,也许会下雪……

  4.开发一个华容道

  最后的建议纯属玩笑,昨天已经有人发现了Windows Phone 8新UI与华容道之间的神秘联系,所以,我们用Windows Phone 8的新UI开发一个华容道游戏,也许能够火起来。

  除了华容道外,同类消除、连连看、猜卡片类的游戏也会成为Windows Phone 8重点应用。

  大家可以在游戏结尾增加一个投票:“你喜欢这样的Windows Phone 8吗?”。虽然我们改变不了什么,但至少可以让我们苦逼的Windows Phone开发之旅多一些乐趣。

  所谓乐趣就是,我们拿着Windows Phone 7.9的Lumia 800时,会听到以下的对话:

  “听说这家伙以前是开发Windows Phone应用的……”

  “Windows Phone?就是那个害死诺基亚、自己不和自己兼容的手机?”

  “是啊,我想不到谁还会为这种操作系统开发应用……”

  “哈哈”

  好了,吐槽就这么多了,作为Windows Phone开发者,你的选择空间真的很小。与其停留在期期艾艾中,还不如从今天开始,面对新的变化。拥抱变化,也许是我们唯一能够战胜大公司的机会。

  当大公司还在评估、调研、讨论Windows Phone 8时,我们已经掸干净身上的泥土,重新上路了。在路上,我们还可以采两朵野花,放在诺基亚的墓碑旁,纪念一下这个曾经的战友,虽然这个不靠谱的北欧人给我们添的麻烦也不少。我们可以这样表达自己的哀思:你妹的256M内存,去掉6M就是你的名字!

责任编辑:佚名 来源: OpenXLive社区
相关推荐

2012-03-16 21:25:14

Windows Pho

2013-04-09 12:59:21

WindowsPhon

2012-06-18 09:45:50

Windows Pho

2011-12-31 21:16:42

Windows Pho

2012-02-20 23:12:45

Windows 8Windows Pho同步共享

2011-06-17 10:04:56

Windows PhoWindows Pho微软

2013-10-30 16:44:49

埃洛普Windows Pho

2012-06-21 09:34:18

Windows Pho

2013-04-12 11:02:50

WWindowsPho

2011-07-12 09:20:32

Windows 8Windows Pho

2012-04-20 12:59:41

Phone

2012-02-06 09:16:14

Windows PhoWindows Pho

2011-09-09 09:17:41

Windows 8平板Windows Pho微软

2017-10-11 13:29:02

Windows PhoiOS微软

2013-01-28 14:59:27

2013-01-28 15:06:20

Windows Pho

2012-06-07 09:15:31

Windows 8兼容

2014-02-25 10:16:36

微软Windows Pho

2011-06-17 10:50:32

Windows 8Windows Pho

2013-11-25 10:05:48

微软Windows Pho
点赞
收藏

51CTO技术栈公众号