初窥VIsual Studio2015的跨移动平台开发

Microsolt在2015年7月20日发布了Visual Studio2015,其中一项重磅功能为使用C#跨IOS、Android、Windows Phone开发,为了一探究竟,特地下载了VS2015 Enterprise看看。

点击开始安装,勾选上全部内容,包括Android SDK和IOS开发环境,艾玛这货居然要占用我27G的磁盘。。。点击继续开始安装,出去吃顿饭回来以后看到下图:


图1 VS2015安装界面

小小激动一下,微软要用C#统一天下哇哈哈哈哈哈。不到30分钟安装完成了,但是提示说Android SDK安装失败,原因是未能连接上网络,我纳闷了好一会,难道VS2015没有自带?于是我先浏览了一下文件系统如下图:


图2 Windows 10的开始菜单文件夹

诸位看到那个Android SDK Tools没?看到这里我有一种不好的预感,点开眼前的一幕让我瞠目结舌。。。


图3 Android SDK Manager

你他喵的是在逗我吗啊啊啊啊啊?这尼玛不是谷歌弄的那一套SDK管理工具吗?这个不是要Java环境才能打开吗?我刚装的系统没弄Java啊,于是我在图2中找到了VS给我装好的JDK。。。。看到这个界面,我知道需要架设梯子了。什么?你不懂梯子是啥?那么你需要提升一下政治觉悟。架好梯子之后重新点击VS的安装向导,勾选上Android SDK点击继续,Proxifier的流量监控图如下:


图4 Proxifier流量

看到没VS这个安装向导底层就是调用的人家谷歌现成的程序做事的。这里解释一下,图3是我已经成功的安装了SDK之后的样子,安装失败的话里面是什么都没有的。耐心的等待安装完毕。

因为我的梯子挺窄,因此这个过程用了非常长的时候,最后还是安装成功了,激动的打开VS2015,新建工程,如下图所示:

图5 新建工程

图6 新建工程


图7 新建工程

如上三图所示,VS新增支持了Android和IOS的开发支持,在C#项目中,支持了Android手机、Android Pad、Android Wear系统开发,也支持了IOS手机和平板的开发,甚至支持了才出来几个月的Apple Watch的开发,这尼玛。。。哥手里还拿着诺基亚的Windows Phone呢,让我情何以堪情何以堪情何以堪情何以堪。。。。关于Visual Studio新建UWP(支持Windows、Windows Phone、Windows LOT等全系列Windows系统的通用应用)的页面貌似没找到,应该要为VS2015安装补丁才能支持,现在版本里面关于移动开发的还是只支持Siverlight8.0、Siverlight8.1和Windows Runtime8.1,其中Windows Runtime8.1能够跨Windows Phone和Windows编码,两者之间几乎不需要改动代码,是笔者的主要使用平台,页面就不展示了,说多了都是泪。。。

重点来了,我新建了一个Mobile Apps,选择了Native Portable如下图所示:


图8 新建Universal工程

     这时弹出了一个窗口,如下图所示:

图9 Xamarin连接提示

吓得我赶紧百度了一下Xamarin是何方神圣,百度百科如是说:Xamarin始创于2011年,旨在使移动开发变得难以置信地迅捷和简单。Xamarin的产品简化了针对多种平台的应用开发,包括iOS、Android、Windows PhoneMac App。Xamarin由许多著名的开源社区开发者创立和参与,而且也是Mono项目的主导者——C#与·NET框架的开源、跨平台实现。

有兴趣的读者可以百度自行查询一下,其实这个Xamarin就是原来的Mono那群鬼子搞出来的一个玩意,而且从VS2011时代就有了,一直都是跨平台,作为插件的形式存在于VS之中。也就是说这次微软号称的跨平台其实早就有了,这次只不过让VS自带这个插件,从侧室升级为正房。Xamarin是Mono的一个分支。上图这个界面说白了,你想搞IOS开发,首先你还是得有一台Mac,在Mac上装个Xamarin,和VS配对成功之后,VS把写好的代码扔过去编译,如果调试不算功能的话,VS其实就成了一个Notepad尴尬。现在问题来了,咱都买了Mac了,为啥不直接在Mac上开发?还有就是,咱都选择在Mac上开发了,为啥咱要用Xamarin这么个鬼玩意不用xcode自己的东西?最后就是,既然咱都用xcode了,就别倒腾C#了吧,直接用Swift和objective-c算了,这些都是工作量不那么大的界面语言,而底层的C和C++代码自然而然的全平台一个字不改支持。综上述,除非你只会C#并且不想学习其他语言,那就倒腾吧。Moreover,Xamarin这货是收费的!

回归正题,新建好的工程如下图示:


图10 APP工程结构

诸位请看上图的Solution Explorer,意思大概就是,请把通用代码扔进APP1.Portable,然后分别为三个系统设计三个界面,左边的代码我看到了熟悉的MainActivity微软的外语学的真好哈哈哈哈。Windows Phone调试不是新功能这里就不演示了,IOS调试因为本人穷鬼买不起Mac也不演示了。调试器更换为Android模拟器之后,点击开始调试,系统将启动Android虚拟机,注意此时将弹出一个Xamarin的登录页面,没错你需要到人家官网去注册再登录,你可以领用一个一天的试用账号。这里注意,如果你想XX掉Xamarin从而吃霸王餐的话,请一定别登录,自行搜索Xamarin xx教程。启动Android虚拟机之后如下图所示:


图11 微软的Android虚拟机

    总算让我们看到了些令人惊喜的东西,上图是微软的Android虚拟机,使用微软自家的Hyper-V虚拟机实现,注意这货是Hyper-V实现的!!!没听说过Hyper-V的可以查一下,这货要求处理器支持虚拟化并且系统为64位,所以一些公司使用的什么云办公平台是不要想用Hyper-V了,这个配置要求Intel家I3级别以上的处理器都是支持的(AMD处理器请自行查询),这个虚拟机是硬件虚拟化而不是像Google搞出来的那种破烂Android虚拟机!Hyper-V七八年年前就出现在Windows Server中,而Windows8.1开始也支持了这一特性,是Windows和Windows Phone(注意不是Mobile)的御用虚拟机,是VMware和VBox强有力的竞争对手,这货一直算是Windows Phone开发的杀手级优势功能,现在让给Google了。体验了一下这个Android虚拟机,装了个百度外卖,在虚拟机设置里面指定地点到上海,定位找外卖,整个使用过程十分流畅(视计算机配置而定,我是笔记本I5+6G RAM +120G SSD)。图11最左边的那幅图就是部署上去的应用的样子,最右边的界面是Android4.4的虚拟机。重点来了,为什么展示中间那幅图呢?看清楚了,两个程序,Mono Android Support和Mono Shared Runtime,回到VS调试器看输出,在Build Success之前里面有一句Installing Mono on Android,这再一次印证了,Xamarin就是Mono,微软这次所谓的跨平台,就是把Mono中的Xamarin直接加进来了而已。作为一个微软粉丝对微软的了解,微软下一步应该是准备收购Xamarin。

Xamarin是公司维护的没错,但是作为一个不那么硬实力的公司出来的产品,估计在API上有很多限制,并且绝对做不到原生的那么高效。Mono的知名程度还远不及Qt呢,Qt上有多少知名软件,而Xamarin呢(喵的不查都不知道原来就是Mono)?所以在微软收购Xamarin并且深度整合并且发布VS2018之前,咱们还是散了吧,看看热闹就行了。

展开阅读全文

没有更多推荐了,返回首页