手机

安卓手机如何运行exe程序真方便

众所周知,在传统的PC操作系统环境中安装虚拟机,以便运行并非直接兼容的异构应用程序,这样的操作已经屡见不鲜。例如,在Windows操作系统上,通过VMware Workstation或Bluestacks等工具运行Android虚拟机就是一个典型的例子。由此可见,Windows平台与虚拟化平台之间的兼容性毋庸置疑。然而,我们是否曾考虑过,未来有一天,Windows能否直接兼容Android应用程序?从当前的技术发展来看,这一想法似乎显得颇为天方夜谭。与此同时,一旦Windows实现了对Android应用的直接兼容,将会引发一系列连锁反应,其中很大一部分将涉及开发者、服务提供商等多个层面的问题。今天,我们就来深入探讨这一引人入胜的话题。

所谓兼容,本质上是一个相对的概念,类似于“相亲”,需要双方相互看中才能成功。然而,Windows平台是否支持Android应用程序,最终取决于微软的决策,因为Android本身是一个开源项目。近期,微软在纽约举办了一场全球开发者在线会议,会议上微软宣布了其开发框架.Net的开源计划,并推出了针对小型开发者的Visual Studio 2013 Community版和Visual Studio 2015预览版。

Windows的未来将更加开放

在此之前,尽管也可以在Windows平台上运行Android系统并部署Android应用,但这通常需要借助一些辅助工具。此外,值得注意的是,早在去年10月下旬,微软在旧金山的发布会上,CEO纳德拉就公开表示“Microsoft Love Linux”。从这个角度来看,微软正在逐步变得更加开放。

从目前Win10技术预览版的各项变革中可以看出,微软现在越来越重视桌面端用户的体验。而应用商店的推出最初也是为了移动平台设计的,或者更准确地说,微软对Windows10的期望是,既不放弃传统的桌面应用,也不忽视移动平台的发展。然而,随着技术的不断演进,Windows应用商店的主要竞争对手已经不再是Android应用,而是传统的exe应用。

Windows Store应用市场的现状

(与Android应用市场进行对比)

Windows应用的开放程度相较于Android有过之而无不及,甚至在某种程度上比Android应用市场更加混乱。Android虽然也有正规的第三方应用市场,但Windows平台上的应用市场则显得更加杂乱无章。在我们日常接触的应用链接中,往往充斥着各种误导性链接,而软件本身也常常捆绑着其他不必要的程序,稍有不慎就可能感染病毒。

Win10为何未能实现“软件大一统”?

尽管Android软件同样是开源的,但它仍然拥有Google Play应用市场。应用商店收录经过认证的正版软件,类似于Steam平台,这必然会推动应用商店的快速发展,从而吸引更多的PC用户。无论如何,微软通过将exe应用收录到应用商店,向用户和开发者传递了一个明确的信息:Win10支持两种不同的应用格式和开发方法,开发者可以根据自己的需求选择合适的开发方式或应用格式。

Windows10构建统一软件平台的挑战

从技术角度来看,WinJS是一个开源项目,可以在Chrome/Webkit环境中无缝运行。Xamarin/Mono开发工具则证明了通过C#和模拟XAML开发原生Android应用是完全可行的。而微软VS2015已经内置了安卓模拟器,未来的ASP.net技术甚至支持无需SDK就能在MacOS X系统中原生运行应用。那么,为什么微软不也在应用方面采取类似的策略呢?

Xamarin在Visual Studio中的应用开发

Xamarin:成立于2011年,旨在简化多平台应用的开发过程,包括iOS、Android、Windows Phone和Mac App。Xamarin由众多知名开源社区的开发者共同创立和参与,同时也是Mono项目的主导者——C#与.NET框架的开源跨平台实现。

如果Xamarin能够做到这一点,那么微软也完全有能力实现类似的功能,但不是通过使用假冒的XAML,而是通过真正的XAML和WinRT SDK等。此外,Rudy Huyn指出,Android开发人员并不喜欢Eclipse开发平台,而C#语言与Java在功能上有很多相似之处(如Linq),这可能会吸引更多新晋移动开发人员使用微软的工具(Blend/Visual Studio)进行应用开发,从而提升Windows应用商店的整体质量。

是否兼容Android:微软面临的两难选择

在Windows10未来是否兼容Android应用的问题上,尽管在技术层面似乎存在一些可能性,例如在Windows平台上运行Android应用的模拟器,这在较早版本的Windows中就已经出现过。然而,我们更关注的在SDK层面直接运行原生Android应用程序的模式,微软目前尚未借鉴这种技术。

在Windows平台上开发应用程序

所使用的SDK是一个集合

那么,让我们先来看看业界人士(开发者、媒体)对此事的看法。

Rudy Huyn是一位颇具影响力的开发者。最近,他亲自撰写文章表达了自己的观点。Rudy Huyn明确反对了有关微软计划支持Android应用的传闻。如果一个用户需要在一部Android手机和一部能够模拟Android应用的手机之间做出选择,那么最终的结果也是非常明确的。

之前,微软与IBM共同打造的OS/2系统就因为尝试运行Windows应用而最终失败,黑莓BB10系统也因为引入Android应用而走向没落。BB10系统就是一个典型的反面教材,黑莓商店中几乎全部是使用Android SDK开发的应用,而几乎没有使用黑莓SDK的应用。如果微软也采取类似的策略,未来将会发生什么,只能拭目以待。

Windows第三方Android模拟器

Windows10究竟将以何种方式“支持”Android应用,目前仍是一个未知数。目前,用户可以通过第三方模拟器在Windows系统中运行Android应用。如果消息属实,这可能意味着微软将提供官方的Android模拟器,或者通过其他方式来运行Android应用。

需要指出的是,如果微软仍然采用Windows平台之前已经执行的路线,即使用第三方模拟器来运行Android应用,那么这种方案无异于“炒冷饭”,诚意略显不足。如果微软“下定决心”从SDK层面开发全新的工具,那么另一边的声音又会响起——开发者的利益将受到严重损害。

Windows兼容Android:可能对开发者造成伤害

实际上,在微软考虑将兼容Android重新提上日程,并着力推动这一举措时,存在着两种主要方式。在前文中,我们已经详细分析了这两种方式。关键在于是重拾模拟器,还是重新定义SDK开发层面。文章的写到这里,我们有必要讨论,微软的举措对用户、开发者所产生的影响,甚至可以说是“伤害”。

首先,如果是模拟器的话,微软实际上不需要花费太多精力,只需让Windows通用应用兼容Android手机。这样,只需发布一个应用就可以在包括Windows、Windows Phone、Xbox、Android、Chromebook、Kindle、其他Android分支系统、PPI与物联网系统等几乎所有OS中运行,除了苹果的iOS。这样,对于开发者而言,并没有从根本上产生影响。因为开发者在这个过程中可以继续提供第三方模拟器的开发工作,这样说得直接些,不至于打击开发者的积极性。

Windows通用应用

如果基于SDK层面开发,将Android应用引入Windows设备,将会导致无人再为Windows开发本地应用的尴尬局面,因为只要开发出一款Android应用就能一劳永逸地通吃Windows设备,因此没有人愿意再做无谓的努力。而且,兼容Android应用还可能导致糟糕的用户体验和性能问题。这样,必然会对开发者造成“伤害”,那么接下来产生的负面影响,可想而知。

每件事情都有两面性,而在Windows兼容Android应用这件事上,也或多或少会影响到Win10生态的构建。我们总是有一个思维定势,认为运行xap格式的才是WP系统,后来WP8.1出现了,我们知道运行appx格式的也是WP系统,那么为什么不能认为Win10出来后,运行apk格式的系统也是WP系统?或者说,能够运行xap、appx、apk格式的系统才是WP系统。因此,对于apk的兼容,我们其实也可以持开放态度,而不应该将其视为洪水猛兽,或者引狼入室。

Windows Phone 8.1

但话又说回来,Win10系统的根基毕竟是WP生态中的原生应用,如果让apk应用泛滥成灾,那么Win10岂不越来越失去本来的特性,直至最后失去主导权?所以,如何引入apk应用也是一个问题。我们以为,既然强调了Win10生态是支持多种格式的生态系统,那么,是不是可以让应用商店发挥其充分的作用,也就是说apk应用也要提交给应用商店进行审核,然后才能下载安装,否则不支持安装。这样,就会在一定程度上限制apk的泛滥和对原生应用的侵蚀。这样既没有伤及开发者开发产品的积极性,也不会扰乱Windows Store的正常秩序。当然,这也是建立在微软执意将“兼容Android”这件事作为基础的前提下的对策。