昨夜,科技圈又一场沸腾。
微软的 Build2015 大会如期召开,在第一天即是看点无数,Office 平台化、可横跨 Win10、OS X、Linux 三大平台的 Visual Studio 代码、Win10 统一商店、新的初始窗口 Windows Spotlight 以及可以将手机内容矢量扩大到大屏幕设备的 Win10 手机版 Continuum 平板模式等等。
然而有一则传了许久几乎成真,但当微软亲口宣布时,还是不禁让人虎躯一震的事情,就是微软宣布现有的 Android 和 iOS 应用均可以移植到 Win10 手机上来。
微软靠什么实现这一点?
微软在现场解释了实现这一点的原理,对于 iOS 应用来说,可以通过微软发布的 Visual Studio 代码来进行重构,转换之后可直接作为 Win 10 应用,微软称这项功能可以实现对原 iOS 应用代码的编写和调试,并且可以通过 Objective C,使之成为完美的 Win10 应用。
而 Android 应用的移植则相对复杂一些,它是依靠对于 Java 和 C++ 代码的 Android 应用进行重用,来创建用于 Win10 手机的应用,而为了实现这一功能,Windows Phone 还将内置 Android 子系统。
在现场直播中,微软也当场移植了一个 iOS 上的小游戏《糖果粉碎传奇》和 Android 平台上的《Choice Hotels》 App,结果显示,移植后的程序运行起来很流畅。
其实看到这里笔者想说的是,微软说的大一统平台,果然不是吹的,这一下子就有了三大架构和三大平台了…
兼容和移植,是有区别的
其实支援其它平台的应用,微软早已不是第一个,黑莓、脱胎于 Meego 的 Sailfish OS 和更早以前的 Web OS 都干过这事。不过不同的是,黑莓支持 Android 应用是通过移植,而 Sailfish OS 则是兼容。
这两者的区别在于,移植是需要把原先 Android 应用的代码重新编写,例如 Win 10 就是靠把 Android 应用代码拿到 Win 10 平台上,用 Java 和 C++ 语言重编一次,最后生成 APPX 安装包,继而实现移植。
值得一提的是,微软给出的方案,其实已经是大大减轻了开发者的开发成本了,因为移植过来的 Win 10 手机版应用直接就会是通用应用,并且还能够加上 Windows 上的一些特性,比如 Cortana 和动态磁贴等等。而微软还专门加入了一个应该是 Android 模拟器的“子系统”,估计也是为了能更加简化移植 Android 应用的门槛,比如解决 Android 应用对于软件权限的要求比 Windows Phone 高出太多的落差,而运用这么一个子系统,就能方便开发者不少工作(但由于远未达到听上去几乎是“一键移植”的那么简单,因此用户也不要太过兴奋。)
而兼容就是,直接把 Android 应用的 APK 安装包给放在手机里,就可以直接安装和使用。一般来说,想实现这一点通常是在自身系统内使用 Alien Dalvik 虚拟机建立了 Android 的运行环境,借此来运行 Android 应用。
乍一听上去,似乎兼容要更加方便,因为移植还多了一道重新编写的工序,无论后者怎么简化,它依然无法避免——但实际上,二者的差距其实并没有你想象中那么大,因为它们所做的,都只能算作是过程而已,但真正考核成败的,是“拿来”之后的结果如何。
能不能成?不好说
对于微软来说,最好的结果肯定是大家都不再买 Android 和 iPhone 了,而都来买 Windows Phone,因为后者一个就能跨越三大平台,再加上自家的 PC 和 XBox,画面简直不能太美。
但实际上,更有可能发生的事情却与之背道而驰,那就是 Win 10 手机版可能会就此告别原生应用了,因为开发者极有可能觉得,反正 Win 10 手机版是可以移植的,那么先开发 Android 和 iOS 应用显然更加划算。
这就好像是文摘杂志和原创杂志之间的问题一样,因为对于作者来说,反正前者是可以转载的,那么作者就会更顾着原创杂志那一头,这是人之常情,而对于文摘杂志来说,虽然它轻松的拥有了自己需要的内容资源,但它也失去了属于自己的原创内容,而这并非是长远之计。
这也就是为什么看似尝到了甜头的黑莓,其高管会愤愤说恨不得立刻剔除 Android 移植应用的原因,因为它让自己的系统失去了魅力和灵魂。
更别说通过移植之后,应用的体验也可能会打上折扣,毕竟因为只是方便移植,因此那些需要调动 Android 和 iOS 系统机制的功能在移植后通常是无法实现的,这就需要开发者用微软的 API 替换 Google 的 API,而这中间能够影响到用户体验的关节实在太多了,特别是如果最终移植过来的应用不如在纯正的 Android 环境中的体验的话,那么移植也就基本没有了意义。
此外,还有一个主要的问题是时机,微软直到 Win 10 才开放移植,但现在 Android+iOS 已经拿下了近乎 100% 的市场份额,并且系统体验日臻成熟、也开始朝着其它平台拓展,可能没有人会搭理微软了,其实如果微软在 3 年前的 Win 8 上提供开放的话胜算会很大,但在当下,这一点很难被寄托。
但话不能说太死,毕竟微软此举也不是全无转机的可能,关键还在于执行力,比如能不能笼络好与开发者关系,是决定这一战略能否成型的关键,但考虑到微软此举在一定程度上让之前的开发者的贡献被大大降低,可能导致这部分核心开发者的背离。因而接下来微软只是靠降低移植成本和允许上架 Win 10 商店可能还不够,还需要对开发者有真金白银的付出,但微软能不能承受因此可能出现的利润下降?对于正处于转型之中的微软来说,这可能并不容易决定。
(插图来自 The Verge)