前段时间决定将本身用了三年多的Lumia 800正式退役,这是我用的时间最长的手机,虽然系统上有缺陷,可是好不妨碍他成为我最有感情的一部手机。因为以前是WinPhone 开发者的关系,这部手机是微软送的,眼睁睁的看着WinPhone系统从出生到长大,还没成熟时就蔫了的历程,内心很不是滋味。这篇文章先晒晒被我用过的Lumia手机,而后再分析下WinPhone发展成如今这样微软须要承担的责任。android
首次接触WinPhone是在2011年下半年,当时刚刚毕业,没有遇上ios和android那趟船,也由于主要的工做语言是.net,因此对刚刚兴起的WinPhone寄予厚望。在开发了几个小软件,微软送了个手机后,我便以WPer自居,而且指望做为国内第一批的WinPhone开发者,享受到系统发展带来的红利。可是后来的事情你们都知道了,四年过去了,WinPhone在中国的市场份额是0.8%,甚至比三年前还要低。全球的WinPhone份额基本也就是在2%到3%之间,已经没有了和前两大系统叫板的底气。
图:2014年手机操做系统市场份额图表
做为一个WPer,对WinPhone的发展深感痛心,咱们曾经幻想成为三大系统之一(虽然如今是第三,可是好意思和ios/android排一块儿么),并且当时的WP也的确有着成为三大系统的机会,可是微软没有抓住机会,带领着WinPhone一步步的走向没有将来的世界。。。
WinPhone系统诞生的过程
不少人不知道为何WinPhone的第一个版本,叫WinPhone 7,那是由于在WinPhone以前,微软还有个手机操做系统叫Windows Mobile,最后一个版本是Windows Mobile 6.5,因此新系统就顺势叫作WinPhone 7。当年那个Windows Mobile很是厉害,至关于Windows的手机版本,上面能够找到开始菜单,也能够玩和pc版本一致的纸牌。HTC在大陆的前身多普达则出过多款该系统的智能手机,那时候有一个Windows Mobile系统的手机是一件倍有面子的事情。
图:当年的多普达手机
可是这一切都在苹果推出iPhone以后被打破,人们惊讶的发现,原来智能手机系统应该怎么玩,因而纷纷模仿起来。先是有Google的android,而后诺基亚也坐不住了,抛弃了以前的塞班 S60,和英特尔联合开发MeeGo系统。微软眼看着再没动做就要错失良机了,因而在2010年隆重推出了全新的WinPhone 7系统。还记得当时搞了个声势浩大的游行,举行葬礼宣判iPhone死刑,如今看来是多么的好笑。
图:当时宣判iPhone死刑的游行
在微软内部肯定WinPhone取代Windows Mobile后,WinPhone项目就开始了。负责WinPhone 7界面的是微软的设计总监 Flora,他在WinPhone的设计上引入了Metro的设计风格,打造了在UI上彻底不一样于IOS和android的体验。固然对于这种设计风格褒贬不一,做为我我的的体验来讲,虽然和当时主流的设计不是很相符,可是也是可接受的,固然若是你说它长得丑了点我也不反对。
图:左为WinPhone 7,又为WinPhone 8
另一个掌握了WinPhone 7生命的是微软移动设计团队主管,他主管了WinPhone 7的设计。不知道是由于时间上太紧迫仍是其余方面的缘由,最第一版的WinPhone 7简直是个半成品。不少人可能不知道,最开始发布的WinPhone 7是彻底的单任务,也就是说你每次打开一个应用都是从新加载的,没法继续你刚才的操做。由于这样的限制,微软强制要求开发者在发布程序时使用“墓碑机制”来重启时还原程序关闭前的状态,这不但下降了用户体验,也提升了应用程序的门槛。好在WinPhone 7.5就解决了这个问题,这是我印象中微软在WinPhone上动做最快的一次。还有其余的一些没有达到业界平均水平的点,深受诟病的有音量没法单独调节,重力感应不能关闭、没有文件夹、没有通知中心等等,槽点太多,无力吐槽。
以上说的都是一些系统级别的缺陷,大部分应用级别的缺陷均可以经过第三方来解决,可是微软不少权限都没有放开,API少的可怜。因此你当时在市场上看不到流量控制的软件,也没法找到能显示来电归属地的软件,甚至找不到能显示通话记录的软件。。。
固然刚才说的不少问题微软都在后续的版本中解决,可是这样就OK了么,你觉得用户会为了通知中心等你24个月么。最好的时光已通过去,最佳的机会也已经溜走。
微软是如何抛弃WinPhone 7的
相信在全部早期的WinPhone用户和开发者的记忆中,微软宣布WinPhone 7不能升级的时候是毁灭性的。我是5月份刚拿到了Lumia 800,你要知道当时的Lumia行货价格接近3000,而后6月21日,微软推出了winPhone 8,而且宣布全部WinPhone 7系统手机不能升级到WinPhone 8,取而代之的是升级到一个安慰版本——WinPhone 7.8。
图:WinPhone 7不能升级获得了铺天盖地的宣传
若是是一个有经验的公司,即便在不能升级的状况下,也能够将WinPhone7.8归入到WinPhone 8中,做为一个特殊的版本。或者说WinPhone 7能够升级到WinPhone 8,可是须要硬件和内核支持的功能不可用,这样也会让WinPhone的老用户内心舒服不少。可是微软在宣传策略上直接说明“老用户只能升级7.8,不能升级8”,彻底看不出一个老牌世界500强公司应有的宣传实力。相同的一个事件是IOS 6宣布支持iPhone 3GS,虽然不少功能不能用,可是不少苹果用户都大喊苹果良心。
咱们再看下为何WinPhone 7不能升级到WinPhone 8,微软给出的解释是内核的转变。WinPhone 7使用的是Windows CE内核,这是一个有着十多年的老内核,因此对硬件的支持不够,好比不支持65536色以上,不支持多核处理器、NFC等,这也就是WinPhone 7清一色的单核处理器的缘由。而Windows 8使用的是Windows NT内核,他是个新开发的内核,简单点讲就是它能支持很是牛逼的硬件,是不能运行在低端的硬件之上的。可是在技术上是否是真的没法实现升级呢,固然不是,民间就有高手将HD2刷成了WinPhone 8, 而且在论坛上放出了刷机包。因此不能升级的缘由是在微软看来WinPhone 7的用户和销量都比较小,不值得为这么少的用户来大费周折的推出一个定制版的WinPhone内核。只能说微软是基于商业的考虑,而并不是从用户的角度来考虑升级这件事情。
结合第一段WinPhone的发展过程来看,其实在内核和技术上WinPhone 7并无比Windows Mobile高出多少,而更像是改了一个UI的系统,而WinPhone 7到WinPhone 8才是真正的改变。而微软着急推出WinPhone 7是为了一个姿态,也让用户习惯Metro UI以及App的积累,虽然不能升级,可是App反正都是托管代码,Winphone 8仍是能够运行WinPhone 7的应用的。从这个角度考虑,WinPhone 7从一开始就是一个仓促推出的短时间版本,也就注定了它悲剧的命运。
微软在宣布的时机选择上也是很是重要的,当时恰逢 Lumia 系列的销量上升,而且诺基亚在大陆趁势推出了更高端的Lumia 900手机,才推出一个多月,微软就宣布老款手机不支持升级。关键还在于当时离WinPhone 8正式推出还有四个多月的时间,这四个多月诺基亚是何等的尴尬,让消费者买不能升级的Lumia,仍是劝咱们买两百一个的功能机呢。
无论不能升级是由于系统内核的缘由、成本的考虑仍是其余商业上的目的,微软这样的作法彻底伤透了全部使用WinPhone 7产品的用户。虽然损失的这部分用户的份额不大,可是这部分早期用户实际上会有比表面上的市场份额更大的能量。早期的WinPhone 7产品并不便宜,并且系统上不是很完善,不少使用WinPhone都是对数码产品比较熟悉的用户,他们多是周边同事朋友购机的顾问,这部分用户对其余人有强烈的带动做用,因此损失这部分用户实际上是很是惋惜且影响十分恶劣的。
另外,不能升级也会对还没有购买WinPhone 手机的用户产生影响。我在使用Lumia 800过程当中,公司有不一样的同事表达对这款手机的喜好,而且有意愿购买WinPhone 手机,可是自从不能升级以后,没有一个朋友准备购买WinPhone手机,而且对使用WinPhone手机的用户或多或少表现出一点不理解的眼神。几乎全部第一次发现我使用的是WinPhone手机的朋友,问出的第一句话就是,据说这个手机不能往上升级了。
微软对用户需求的无视
从WinPhone推出的第一天起,就伴随着大量的吐槽,而微软在系统改进上的速度比蜗牛还要慢。咱们看几个典型的例子:
通知中心
通知中心目前应该算是只能操做系统的标配,可是WinPhone却没有。因此可能会出现的场景是,有通知时在顶部一闪而过,没来得及点击后你就无法知道他通知的是什么,你永远不知道刚才是哪一个应用通知了你。有些应用可能会在磁贴上有个小的数字提示有通知,可是前提是必须将这个应用固定到首页。
那么为何微软为何不在WinPhone 7中就将通知中心作进去呢。微软的Metro的设计理念是动态磁贴(即Live Tiles)来实现通知中心的功能,有通知时实现通知的内容呈如今磁贴上。可是大部分应用都没有实现这样的功能,基本有消息时只会显示一个数字,没有通知的信息,若是想知道具体的内容仍然要启动应用才能看到。另一个限制是必须固定到首页的应用才能实现动态磁贴,对于没有固定到首页的应用若是没有点中一闪而过的通知,那就没地方能够看到通知了。
没有通知中心还有个特别不顺手的地方,没法一键开关Wifi,蓝牙、网络、GPS等功能,须要到找到设置里面的相应页面才能开关。直接的后果就是很长一段时间在微软的MarketPlace中相应的一键设置软件的下载量长期占据前十名中的好几名。
微软在后期也确认将会增长通知中心,不过这已是14年4月随着WinPhone 8.1才推出,离WinPhone的初版已通过去了四年的时间。微软曾经给出解释称是资源不足,致使没有在WinPhone 8中搭载通知中心,可是我是不相信一个有着10万人的公司,会由于资源不足致使对市场的反应如此之慢,只能说明微软的官僚主义已经深刻到骨髓。
音量没法单独调节
WinPhone在至关长的时间内全部音量都只有一个值,就是说你的电话铃声和各类app的声音是同样的,没法实现铃声,应用,系统铃声音量的分开调节。在我实际的使用中,常常在玩游戏时静音,若是游戏结束时忘记把音量调回来的话,那么一成天手机都是出于静音状态,我也所以漏接过许多电话。这个问题也通过了漫长的等待以后,直到WinPhone 8 GDR3版本才修复,别问我为何记得这么清楚,大家有过那种等待好几年终于如愿的感觉么。
仔细了解发现,WinPhone的音频架构是很是完善的,实现音量控制的分离是很是容易的一件事情。WinPhone的音频APIs是通用音频架构UAA的一套API,能够独立处理每一个进程下的音频API请求,也就是说每一个应用的音量均可以单独控制。这么牛逼的架构,微软却一直不在其基础上实现单独调节音量,若是不是官僚主义,就是彻底对用户需求的漠视。
图:高手发的音频架构图
还有一些像屏幕旋转、没有桌面文件夹我就不一一列举了,随便一个功能的推出时间都被 IOS 和 Android 甩开好几年。
微软对开发者的“虐待”
这里我用了“虐待”这个词,可能不少人以为有点过头,可是这是我真实的感觉。没有一家厂商敢这么儿戏的对待开发者,没有一家平台会如此频繁的变动架构。
微软的C#语言是一个很是容易入门的语言,Visual Studio 也是一个很好很强大的工具,加上微软的号召力,因此在中国有很是庞大的C#程序员,规模甚至能够和Java相比。因此在WinPhone刚发布时,有不少像我同样的 C# 程序员但愿搭上WinPhone的顺风车,当时的我的开发者数量其实并很多。WinPhone 7 的应用基于Silverlight for Windows Phone(普通应用) 和XNA (游戏应用)开发,虽然微软开放的API比较少,可是仍是有很多我的开发者或者团队出了很多不错的应用,也出现了一些以WinPhone为主的游戏分发公司。同时微软也时不时的举办开发者活动,虽然收集了不少垃圾应用,可是客观上仍是增长了应用的数量。这段时期WinPhone的生态正在慢慢创建,而且有着向好的方向发展的趋势。
当微软宣布退出WinPhone 8,抛弃WinPhone 7时,顺便也大幅修改了API,增长了Windows Phone Runtime,也支持了C++的开发。这个时候其实微软已经有将WinPhone和Windows的开发模式合并的想法了,可是多是时间不够,这个时候并无彻底的统一,给WinPhone的Windows Phone Runtime也是Windows Runtime的大幅度严格版本。对于普通应用来讲,这期的版本变化不大,都是基于Silverlight的,迁移时稍做修改便可。可是对于游戏应用,WinPhone 8支持Native的DirectX开发,因此WP7的游戏开发者基本抛弃了xna,这个的一直工做量仍是有点的。
对于开发者来讲,真正大的改变是WinPhone 8.1的发布,这时候微软统一了WinPhone和Windows 的开发架构,推出了新的基于Windows Runtime的所谓Universal App,固然同时也保留了以前的Silverlight,只是升级到了Silverlight 8.1,不过全部人都能看得出来Windows Runtime app才是将来。可是既然Windows Runtime是将来,居然不支持部分Sliverlight 的API,好比VOIP、锁屏、相机启动器。而WinPhone 8.1的Windows Runtime 和 WinPhone 8有多大区别呢,下面是其余开发者列举的几条:
还有不少没有列举,因此若是须要移植的话几乎要重写和系统交互的部分。这也就是为何到目前为止不少开发者都没有升级为Universal App的缘由。
上面每一次的改变都会流失一部分开发者,这让自己优秀开发者就很少的平台渐渐的失去了崛起的基础。固然还有一部分死忠仍然在坚守,压死他们的最后一根稻草是兼容IOS和Android。微软这样的举措事实上和以前黑莓公司宣布兼容安卓软件同样,已经认可了WinPhone生态系统的失败,也就意味着放弃了此前一直坚守的WinPhone开发者。目前我所知道的WinPhone开发者几乎都是在抱怨,由于他们发现,就算如今继续坚持下去,到最后依然会被微软抛弃。因此我加入的几个Winphone开发者群几乎都是在闲聊和各类段子,偶尔有个技术问题出来,也是半天没人讨论,一段时间下来,QQ表情却是收集了很多。
对于WinPhone 10(可能就叫Win 10 Mobile)兼容IOS和Android应用的前景,我很是不看好。这种移植过来的应用自己是为其余平台设计的,交互方式和操做习惯都是其余平台的,用户体验上确定要比原生应用差不少,因此对于移植过来的应用用户并不必定买帐。而对于开发者来讲,微软的这种作法已经伤透了他们的心,几乎仍然在坚持编写原生应用的开发者很少,而IOS和Android开发者,原本就看不上WinPhone的用户量,移植工具比较方便还好,若是操做比较麻烦甚至都不肯意花时间移植过来。因此极有可能形成自家开发者失望的离开,别人家的开发者反应冷淡,最后竹篮打水一场空。
结语
WinPhone从2010年发布至今已经有五年的时间,版本也几经更替,曾经有着快速的发展和光明的前景,可是在微软的屡次折腾下而慢慢倒下。纵观WinPhone的发展历程能够发现,几回重大的变革都是因为微软的犹豫不定和动做缓慢形成的。若是最开始就坚决了大一统的理念,最开始就推出NT内核的WinPhone,最开始就坚持Windows Runtime,可能就不会有抛弃WinPhone 7,不会有开发方式的大改变,而等到生态好了,也就不大可能会兼容IOS和Android。
虽然整篇文章是对微软的批判,可是WinPhone目前仍是有机会的,机会在于Android还不够好。但愿微软在新CEO的领导下,抛弃以往的官僚做风,坚持本身的风格,在后面的移动生态系统中占有本身的一席之地。
PS:可能想要说的话太多,写的有点乱。也没有提到单就系统来讲,目前的WinPhone8.1已是一个优秀的系统了,若是有时间的话我后面再写一篇WinPhone相比于其余两大系统的优势,以及目前比较好的应用,给准备转移到WinPhone平台的用户一些参考。
再次PS:部分是看了第三方的资料,若有错误,请指正。