当Windows 10 Mobile离世,UWP留下何用?
本文于2019年01月29日首发于IT之家。
地址:点击这里
本月19日,据IT之家报道,微软确认放弃Windows 10 Mobile,并建议用户转向Android或者iOS。纵观自Windows Phone 7问世以来微软的动作,我们不难发现,Windows手机系统发展的过程,事实上就是微软将手机平台和PC平台融合统一的过程。
例如,在Windows Phone 7到Windows Phone 8的升级中,虽然内核的更换让包括所有初代Lumia在内的WP7设备无法升级到新系统,但与Windows桌面系统一致的Windows NT内核在手机上的采用对Windows平台的融合来说却有着非凡的意义。2015年,随着Windows 10的推出,微软更是将“一次编写、各处运行”的希望寄予UWP。
在微软宣布放弃Windows 10 Mobile之后,相信包括小编在内的很多用户都对UWP的未来的命运表示关切,今天的这篇文章,我们就来讨论这样一个话题:手机平台没了,UWP怎么办?
一个Windows
2012年,微软发布了Windows 8。这款操作系统的市场表现和用户口碑虽然并未达到微软的预期,但是对Windows生态的融合来说,Windows 8却具有跨时代的意义。
在Windows 8之前,面向PC平台的Windows只能运行传统的桌面应用,但从Windows 8开始,微软为桌面版Windows赋予了与Windows Phone 8相同的运行Modern App的能力。对于开发者而言,他们只需将桌面版Windows App的代码稍作修改,即可让它在Windows Phone上运行。微软的“一个Windows”计划雄心勃勃,而它的起点,就在Windows 8这里。
2015年,Windows 10正式问世,微软的“一个Windows”目标得到了初步的实现。对于开发者来说,他们已经无需为桌面平台和手机平台分别编写两套代码,得益于UWP根据设备硬件条件自适应布局和交互的特性,要让应用实现在PC端和手机端的同时运行,开发者只需编写一次代码。
在2017年下半年之前,Windows 10和Windows 10 Mobile曾长期处于处于同一分支下,共用一个Windows核心。如果Windows手机设备的市场表现不那么糟,那今天我们看到的Windows 10 Mobile,或许又是另外的样子。
Build 16212的秘密
2017年6月2日,微软错误地向Windows预览体验计划的成员推送了Build 16212更新,虽然这版会让Windows 10 Mobile设备变砖的系统最终被微软撤回,不过,看似冒失的Build 16212,它的背后,却藏着一个巨大的秘密。这个秘密的名字经常关注IT之家的同学肯定有过耳闻——CShell。
当时,据外媒Windows Central报道,已有开发人员在Windows 10手机设备上运行了Build 16212系统,而这个版本的系统揭示了微软原本打算为Windows 10 Mobile带来的特性——支持应用程序窗口化运行的Continuum 2.0;与PC版采用了同样设计的通知中心以及支持横屏和大磁贴的、适用于Windows 10 Mobile设备的开始屏幕。
如果Windows 10 Mobile的新特性能够得到持续的推进,我们相信,与Windows PC版进一步融合统一的CShell自适应界面很有可能落地到每一台受支持的Windows 10手机上,不过可惜的是,随后微软宣布了Windows 10 Mobile的“死缓计划”,Windows 10 Mobile全新的用户界面被封印在“Pre-Release”阶段,永远等不到正式发布的一天。
你确实在成长,可市场等不及了
自发布以来,Windows 10 Mobile虽然经历过好几个正式版,可直至其死亡,Windows 10 Mobile都没能迎来它的完全体。
不知从Windows Phone 8.1升级到Windows 10 Mobile的同学有没有发现这样一个现象,就是当我们在开始屏幕和所有应用列表之间执行滑动操作时,它的体验并不跟手,具体来说,就是当你的手指在开始屏幕上由右向左滑动时,界面并不是实时响应的,而是会有一定的时间间隔,像是慢了一拍。开始的时候,我们以为这是Windows 10 Mobile上的一个Feature,不过通过与开发者同事的交流,小编意识到,这可能并不是一个Feature,而是一个缺陷。
IT之家开发部的同事表示,Windows 10 Mobile从开始屏幕到所有应用列表之间的滑动之所以会面临不跟手的问题,可能是由于当前界面加载的元素太多,以致于UI线程不能快速的响应手指的触摸事件,当然,在没有官方文档的支持之前,这只是一种猜测。
在Windows 10 Build 14393当中,微软引入的Interaction Tracker使用了合成线程处理触摸指针的事件,在很大程度上能够解决上述问题,但遗憾的是,这个API不仅复杂,而且不完美,直到Build 15063,Interaction Tracker还会因运行时的一个Bug而在Release模式中导致应用崩溃。
毫无疑问的是,如果市场给Windows 10 Mobile时间,给UWP时间,让它进化成完全体,那这个平台的使用体验必然不会亚于安卓,不过让人惋惜的是,由于微软的动作算不上快,虽然Windows 10 Mobile和UWP确实在不断成长,可是市场已经等不及了。Windows 10 Mobile的退场看似是主动的,但仔细想想,其实是被动的。Windows 10 Mobile和UWP的进化速度但凡能够跟上市场的节奏,微软也不至于做出放弃手机平台的决定。
手机平台没了,UWP怎么办?
UWP从来就不是一个只适用于手机和PC的平台。因为除了上述两个平台之外,它还可以跑在HoloLens、Xbox、Surface Hub和IoT设备上。
不过对于大多数的Windows 10用户来说,它们日常能够接触到的设备,无非也就是电脑和手机。至少在自己身边,小编还没见过谁把HoloLens和Surface Hub当成日常设备去使用的,至于Xbox,它的应用场景大多在游戏之上,运行一般UWP应用的时候非常少。也就是说,虽然没了Windows 10 Mobile,UWP只是少了一个供它运行平台而已,但就算把HoloLens、Surface Hub、Xbox和IoT等平台加到一起,它们对UWP的重要程度,可能也抵不过一个Windows 10 Mobile。
手机平台没了,UWP怎么办?遗憾地讲,情况可能不会非常乐观。
我们不妨站在开发者的角度来想,如果一款应用经过一次开发可以同时在手机和PC上运行,那他们非常有理由去开发一个面向Windows 10 PC的UWP,顺便支持Windows 10 Mobile,可是现在,手机平台没了,唯一具有巨大用户市场的平台只有桌面版Windows 10,在这种情况下,单独为桌面平台开发一个UWP显然不是明智的选择,况且发展到今天,UWP应用的技术成熟程度仍无法与传统的桌面应用相比。
Microsoft Store接受传统桌面应用,即意味着这些应用将会经过微软的严格审核,在安全性和规范性上,传统桌面应用和UWP应用之间的差距会越来越小,随着应用开发商或者开发者对Microsoft Store这一分发平台的认可,未来预计将会有越来越多的桌面应用上架Microsoft Store,而UWP的空间将会被进一步挤压。需要承认的是,从初衷上看,UWP的设想无疑是伟大的,但随着Windows 10 Mobile的缺席,UWP走向衰微,又或许是一种必然。