Windows Phone 的这几年
Windows Phone 从2010年10月发布,到如今已经有3年多了。从那时坚持到现在的用户和开发者一定感慨很多吧。
一直关注着这个让人既爱又恨的平台的发展,笔者不仅是使用者,也同时是开发者,这里从一个开发者的角度来总结回顾一下WP走过的这几年。
机型
最早在2010年的WP7时代,三星和HTC都出了不少机型,例如,Focus,O7,HD2,HD7等经典机型。包括DELL,宏碁也都出过机器,但整体都卖的不怎么样。
到2011年底的时候,Nokia开始全面推出第二代WP7的机型,包括710,800,900,以及后面的510,610。笔者当时下血本买了个800,一直服役到现在。
从2012年WP8发布,Nokia的920,820,720,620,520接连发布,三星和华为只是像征性地出一两款,市场获得了不少新用户,也同时得罪不少WP7的用户。
2013年依然是Nokia在唱独角戏,1020,1520,925,以及中低端的1320,625,525,HTC也出了两款:高端的8X和低端的8S。
而2014年传说有一堆厂商会杀入WP8.1。。。什么形势地杀入就要用时间验证了。
分析:
早期的HTC和三星就像他们在android市场的洞察力一样,对于新平台眼疾手快。然而由于Tile磁贴的样式与其他智能手机的UI差异太大,市场接受能力并不强。喜欢的人很喜欢,不喜欢的人真的不喜欢,连一向实施机海战术的三星也没有卖出好成绩,直到今天其对于WP平台都一直是“意思意思”,为了少让微软收点专利费应付性地出几款机型。HTC在WP7时代没有因为先机而占上什么便宜,期待着WP8能碰碰运气,没想到8X和8S也还是销量一般,上市价的3999,1999没过多久就变成1299和699了。DELL,宏碁,富士,华为,中兴,TCL,LG等打酱油的厂商暂时就不说了,出一两款WP的机器只是占个位置做为技术储备。
今年将要发布WP8.1,预计将会出现更多的机型,也会有新的厂商加入,但各厂商除了Nokia外,其他厂商基本上还是以观望为主,出少量的机型探测市场反应。
屏幕尺寸和分辨率
在WP7的时候,只有一种分辨率,那就是480*800,这让开发者省了不少适配的时间。手机屏幕尺寸都是4寸或以下。
到WP8的时候,新加入了768*1280和720*1280两个分辨率。768*1280与480*800一样都是15:9,开发者/设计师为了省事就用大分辨率就行,系统会自己缩放到小的比例,而16:9的720*1280就要额外处理了。手机屏幕也都提高了4.x寸。
在WP8 GDR3的时候,再次提高最大分辨率到1080P,WP的最大手机尺寸也提高到了6寸。
而为了满足更多厂商的需求,WP8.1将再次带来新的分辨率。这下给开发者带来了麻烦,好在分辨率没有太碎,场面还可以控制住。
分析:
除了三星,各个厂家显然都小看了市场对于大屏的需求,所以开始大家的状态也从最开始的嗤之以鼻到屈服于市场。所以微软和高通也一次次地提高WP平台的分辨率以满足厂商和市场日益增长的需求。但是7寸是手机和平板的临界点,相信不会超越这个极限吧。
销量
不用过多解释,WP的销量差不多就是Lumia的销量再乘以1.1~1.2吧,笔者根据Nokia的历史财报制作了一个简单的chart,如下图:(单位:万)
因为Nokia也没有公布之前的lumia销售数字,粗略估计总量为100万左右吧。另外也没有找到三星,htc,华为的wp的销量数据,
上图Chart数据从2012Q1到2013Q4统计Lumia的销量,总销量为4690万,乘以1.2再加上那300万,目前WP在市场的保有量在6000万左右吧。
分析:
因为其他厂商的WP份额基本可以忽略,单从Lumia来说,总的销量还是越来越好的,只是一直都没有“爆炸式”的增长,而且还有两次拐点。
没有出现“爆炸式”的原因笔者认为主要有:生态系统太弱,市场对Tile UI的接受度不高,微软的更新速度太慢,参与铺货的厂商太少。
而拐点的原因呢?第一次的原因应该是微软宣布WP7不能升级到WP8,这对市场的打击较大。而第二次的原因应该是微软宣布收购Nokia,对诺粉的打击较大,不得不说:在手机行业,微软的品牌比Nokia差得太远了。
在2012年的时候,用户和开发者还在抱怨Nokia出机型的速度太慢,而当2013年的时候,用户指责的矛头已经转向微软对系统的更新速度了。以致于WP8至今也只是被少数用户所接受,传染的速度也相当慢,虽然有其他平台的market share增长过快的原因,而我想更多的原因还是在于微软和Nokia自己。微软出操作系统的能力不需要任何人怀疑,Nokia的工业设计也不亚于任何一个厂商。
2014年微软将完成收购,如何处理自家的部门与其他OEM的关系是个问题,甚至如何处理买来的S40和马上要上市的Nokia安卓手机都是问题。
然而WP8.1带来的新功能却给用户和开发者带来了很多希望。预计2014的销量会乐观。
越狱
WP7里只有少数机型通过烧入自制ROM而获得更高的开发权限,而经典机型Lumia800和900都做不到,到WP8引入了secure boot,更是断绝了自制ROM的路。
而前一阵三星的I8750被暴出可以被break,据说是因为其OEM开发者由于殊忽将一个注册表操作工具落在了外面。XDA上有一些贴子,有兴趣的同学可以研究一下。
分析:
微软对安全的封闭固然是个好事,但过于封闭,就是一把双刃剑了,伤了开发者,也伤了越狱者。如果微软能在WP9考虑将WP分支成企业版和个人版,在权限上也加以区分就好了。况且企业用户可以通过MDM集中管理,个人用户更在意的是易用性。
槽点
感觉WP的产品经理并没有做很完善的用户调查,所以用户体验也不是那么完美。下面简单罗列一些用户的槽点:
- 通话功能
- 电话(dialer)功能的默认界面是通话记录,而不是拨号盘。
- 通话记录未合并。
- 通话记录未分离未接,已接,拒接。
- 输入号码时没有智能提示,比如输入1381234没有自动完成。
- 没有来电归属地。现在Nokia已经有了。
- 没有通话录音。
- 没有统计总通话时间。
- 短信功能
- 发短信时不能直接添加联系人号码,而是发送名片。
- 发短信只能选择发给一个联系人的一个号码。
- 不能批量删除。
- 网络
- 没有App流量监控。
- 快捷方式
- WIFI/3G间切换步骤太多。据说WP8.1已经有了。
- 音量未分离。据说WP8.1已经有了。
- 没有App分类文件夹。现在Nokia已经有了。
- 没有五笔输入法(第三方输入法)。
- 锁定屏幕的重力感应。GDR3已经有了。
- 其他
- 搜索太鸡肋。且常被按错。
- 推送总是延迟,或根本就不推送。
分析:
这些只能算是冰山一角了,有些功能甚至只需要改一个注册表的键值(比如重力感应),微软甚至也直到GDR3才更新。而最重要的通话功能,也是十分简陋,微软却迟迟没有听取用户的意见,下一点功夫修改,哪怕自己不修改,也不开放接口给OEM修改。前面也提到了,WP的发展路上,最大的敌人是微软自己。很多时候,为了某个很小的功能,用户和开发者都需要去 “乞求” 微软。。
该说什么好呢?WP8.1会有一大波新的功能,但愿能改变用户的看法。
战略
作为一个开发者,在这里谈战略有点浅薄,但还是从个人的理解说几点吧。
- Nokia的定价策略
Nokia的最新旗舰从来都是天价,然后3个月之后跌一两千,半年之后腰折,而先下手的都是铁粉,伤的最深的也是这一批用户,何不一上市就定一个合理的价格呢?从800,920,到1020,再到1520,都是同样的节奏。
- 微软的推广策略
这已经不是卖license的年代了,而微软似乎还在做着像Windows和Office一样赚钱的梦。在当前的市场份额下,再不免费求着各家厂商生产WP手机就只有死路一条了。塞班当年几家大厂共同贡献的时候尚前苟活,而被Nokia收购之后死的更快。
开发开台
开发涉及到好个层级,从高通QRD,和OEM驱动,到微软的WP内核,再到一些系统级的App和用户级的App。
高通目前基本上是垄断了WP的整个平台,因为其QRD提供了一套完整的方案,能够帮助厂家快速bring up硬件。而很多android机型也是用的高通的QRD,所以拥有多平台的厂商也能够迅速地迁移平台,包括已有的硬件驱动。
而微软的WP内核则从Windows CE 过渡到了 Windows NT,以便完成Windows在桌面,手机,平板,XBOX上的统一大业。这对开发者倒没什么影响,反而为Win32的开发者提供了便利,可惜导致了WP7的设备不能升级到WP8的设备。
WP7时代,用户级的App开发只能使用C#/XAML,OEM可以用一些Win32 api接口。
到了WP8,添加了用C++/DirectX做游戏的应用模型,另外,还引入了C++/CX用于封装C++的类库供C#的App调用。
而8.1,则进一步引入与商店应用相同的应用模型,可以用C++/XAML,还可以用JS/HTML5开发App。而接口都通过Windows Phone Runtime暴露。
不言而喻,Windows Phone Runtime将逐步代替.NET for Windows Phone的地位,作为Windows Phone的根基。
但是从.NET CLR过渡到Windows Runtime,需要有点阵痛的心理准备。
分析:
对于普通App,XAML已经在Silverlight,WPF等技术中应用已久,微软的开发者可以很容易地过渡到Windows Phone。
对于游戏开发,Direct3D,Direct2D的代码也可以很容易从PC平台迁移,当前最流行的引擎Cocos2d-x和Unity3d也已经全面支持Windows Phone。
对于混合App或跨平台App,可以等待8.1新引入的html5开发模型。
对于同时维护Windows Phone和Windows 商店应用的同学,也可以等待8.1带来的便利。
这些都为各种技术背景的想准备进入Windows Phone的同学们降低了门槛。
而开发者最关注的已开放的API,从wp7到WP8基本没有太大的变化,而8.1则有数量不小的添加。
但是在市面上的wp8设备没有完全升级到wp8.1的时候,开发者要维护wp7,wp8,wp8.1三个相对独立的版本。
生态系统
生态系统几乎是影响一个平台最重要的因素,没有之一。很多不明真相的群众都可能因为Windows Phone平台没有某个杀手级的应用,而放弃之。
而影响Windows Phone生态系统的发展模式几乎是个死循环:应用少-->销量少-->设备数量少-->用户少-->开发者少-->应用少。。。
应用的来源大体可以分为这么几类:
- OEM厂商预装的应用:包括为了和其他厂商实现差异化的应用,与运营商合作的应用,系统设置类的应用。
- 个人开发者的应用:有纯免费的小工具,有自制的小游戏,也有一些奇妙的小应用。甚至还有一些练手的和应付作业的应用。
- 企业级的应用:有企业信息发布类的,也有MDM类的。
- 互联网公司的应用:包括社交,音频,视频,图片,信息资讯,导航,电子商务等。
- 游戏应用:多数是其他平台的移植。
其中互联网公司的应用和游戏应用是重中之中,而目前的现状是很多应用都只有另外两个平台的应用,直接无视了WP这个“小众”平台。
期待微软能从软-硬两方面入手吧。
- 推动重点应用的上市,对于应用市场,只有质量上来了,数量才能上来。
- 扶持更多OEM厂商,国内某些厂商的销售能力要比我们想象中强大的多。
让循环变成:设备数量变多-->用户变多-->开发者变多-->应用变多-->销量变多-->设备数量变多。。
希望微软的新CEO上台以后,能加快更新的脚步,当然包括提振WP的生态系统。
后记
虽然本文大部分篇幅都是客观的陈述和理性的分析,而回到本文开头的主题,这个让人又爱恨的平台,你在每次自欺欺人的对他充满信心时,他却像蜗牛一样按着自己的步调不紧不慢。三星研发自己的Tizen是为自己留条后路,某些以Android为主的厂商出一款WP也都是因为不想在一颗树上吊死,当开发者内心充满了对未来的未知的恐惧时,也同样会给自己留一些余地。2014年对WP来说是关键的一年,是攸关的一年,多的话就不说了。
注:转载请经由本人同意。
http://www.cnblogs.com/icuit/p/3563901.html
Windows Phone 的这几年的更多相关文章
- Windows server 2012 添加中文语言包(英文转为中文)(离线)
Windows server 2012 添加中文语言包(英文转为中文)(离线) 相关资料: 公司环境:亚马孙aws虚拟机 英文版Windows2012 中文SQL Server2012安装包,需要安装 ...
- Windows Server 2012 NIC Teaming介绍及注意事项
Windows Server 2012 NIC Teaming介绍及注意事项 转载自:http://www.it165.net/os/html/201303/4799.html Windows Ser ...
- C# 注册 Windows 热键
闲扯: 前几日,一个朋友问我如何实现按 F1 键实现粘贴(Ctrl+V)功能,百度了一个方法,发给他,他看不懂(已经是 Boss 的曾经的码农),我就做了个Demo给他参考.今日得空,将 Demo 整 ...
- Windows 7上执行Cake 报错原因是Powershell 版本问题
在Windows 7 SP1 电脑上执行Cake的的例子 http://cakebuild.net/docs/tutorials/getting-started ,运行./Build.ps1 报下面的 ...
- 在离线环境中发布.NET Core至Windows Server 2008
在离线环境中发布.NET Core至Windows Server 2008 0x00 写在开始 之前一篇博客中写了在离线环境中使用.NET Core,之后一边学习一边写了一些页面作为测试,现在打算发布 ...
- Windows平台分布式架构实践 - 负载均衡
概述 最近.NET的世界开始闹腾了,微软官方终于加入到了对.NET跨平台的支持,并且在不久的将来,我们在VS里面写的代码可能就可以通过Mono直接在Linux和Mac上运行.那么大家(开发者和企业)为 ...
- dll文件32位64位检测工具以及Windows文件夹SysWow64的坑
自从操作系统升级到64位以后,就要不断的需要面对32位.64位的问题.相信有很多人并不是很清楚32位程序与64位程序的区别,以及Program Files (x86),Program Files的区别 ...
- 在docker中运行ASP.NET Core Web API应用程序(附AWS Windows Server 2016 widt Container实战案例)
环境准备 1.亚马逊EC2 Windows Server 2016 with Container 2.Visual Studio 2015 Enterprise(Profresianal要装Updat ...
- 1.初始Windows Server 2012 R2 Hyper-V + 系统安装详细
干啥的?现在企业服务器都是分开的,比如图片服务器,数据库服务器,redis服务器等等,或多或少一个网站都会用到多个服务器,而服务器的成本很高,要是动不动采购几十台,公司绝对吃不消的,于是虚拟化技术出来 ...
- 0.Win8.1,Win10,Windows Server 2012 安装 Net Framework 3.5
后期会在博客首发更新:http://dnt.dkill.net 网站部署之~Windows Server | 本地部署:http://www.cnblogs.com/dunitian/p/482280 ...
随机推荐
- 感知器、logistic与svm 区别与联系
https://blog.csdn.net/m0_37786651/article/details/61614865 从感知器谈起 对于典型的二分类问题,线性分类器的目的就是找一个超平面把正负两类分开 ...
- DBGridEh 在粘贴中文时出现乱码和错位 100zhx_888]
http://www.fx114.net/qa-29-3439.aspx 回复于: -- :: unit DBGridEh; 把下面这个函数替换成这样 procedure TDBGridInplace ...
- python--ConfigParser读写改配置文件
from configparser import ConfigParser fp = 'conf.ini' #定义配置文件名 conf = ConfigParser() #实例化 conf.read( ...
- Java——线程死锁问题
body, table{font-family: 微软雅黑; font-size: 10pt} table{border-collapse: collapse; border: solid gray; ...
- 官网下载的spring-framework的一些描述
刚下载下来是这个文件夹:
- AngularJS-----$compile
原文:http://docs.ngnice.com/api/ng/service/$compile 写在前面的话: 之前我一直理解错误,我一直以为这句--function([scope], clone ...
- RSA签名验证无法通过,检查以下部分
RSA签名验证无法通过,检查以下部分:1.是否和上游交换公钥,提交给上游的公钥是否配置正确并生效2.检查加密方式是SHA1还是MD5,是否跟上游一致3.上游采用的是否是base64SafeUrl的方式 ...
- Cookie注入实战(非SQL注入)
cookie注入原理其实很简单,就是利用了session机制中的特性,只能说是特性,不能算是漏洞. 这里简单的说下原理,session的机制就相当于你有一张蛋糕店的会员卡,这张会员卡就是你浏览器中的c ...
- Swift中获取系统语言
//en-US zh-HK zh-TW zh-Hans-US var lng:String { let userDefault = NSUserDefaults.standardUserDefault ...
- FREESWITCH 填坑指南
转接 1.查看网关注册状态 sofia status 2.桥接(未实践) http://wiki.freeswitch.org.cn/wiki/Mod_lua.html#jump10237 frees ...