1、Xamarin的优势
对于一家希望拥有移动终端用户的公司来说,不得不同时考虑两个(或三个,虽然比较少就是了)平台的移动应用程序开发。然而令这些公司头疼的是,安卓开发多采用Java、iOS开发多采用Swift(或OC)、Win10UWP开发多采用C#,这意味着这些公司不得不雇佣好几批工程师,或者让同一批工程师同时维护多个互不兼容的项目(当然,这些人的工资就得高一点)。
解决这一问题目前唯一成熟的方案是Xamarin,这是微软旗下的、致力于使.NET框架兼容其它移动端平台上的项目。我在以前的文章里提到过,这个所谓“框架”的东西,能抹平不同系统平台上API的差异,这意味着开发人员将能通过Xamarin在三个平台之间共享核心代码。
举个例子:假定某论坛需要多平台移动客户端,那么该平台需要维护三个独立的项目,每一个项目都有一套独立的业务代码;每次论坛API升级,三个项目必须分别被更新,否则App就会不可用。假如这个论坛采用Xamarin开发它的客户端,工程师们就能在三个平台之间共享超过95%的业务代码;无论是开发时,还是API更新时,只需要将这个共享的业务代码维护一次,就能同时应用在三个项目上。
2、Xamarin开发环境的搭建(Android)
搭建这样一个采用C#的开发环境并不复杂:它依然可以集成至Visual Studio。下面以Visual Studio 2017作为例子,来讲解该如何安装Xamarin。
找到一个名为VSInstaller的应用程序(不出意外的话,已经安装过VS2017的朋友可以在开始菜单里找到它),启动它。你已经安装的VS产品会被呈现在第一位。单击产品标识下面的“修改”按钮,修改程序功能。勾上这一项:
并在右边的详细目录里,去掉Android SDK和Android NDK(因为它们在中国大陆是无法访问的,这会导致VS功能修改失败):

单击修改按钮,让它完成修改过程。
由于刚刚去掉了Android SDK的安装,我们的Xamarin虽然可以编写代码,但是却不能编译和调试。现在我们来手动获取Android SDK。
登录Android开发工具中国镜像网站http://m.androiddevtools.cn/,页面下方会有镜像站的安卓开发工具下载地址:

下载那个zip版本的Windows平台下的Android SDK,校验完毕后解压至自己平时存放开发工具集的目录。下面会有这样一些文件(可能会少几个目录,但是在整体配置完毕之后就会有的):

启动SDK Manager,我们来配置镜像服务器。由于Android SDK的服务器在中国大陆无法访问,所以中国很多企业、研究机构和教育机构都建立了Android SDK的镜像站。下面是目前可用的镜像站列表(来自Android开发工具中国镜像网站):

我们在SDK Manager的菜单栏,选择Tools->Options,将任一有效地址填入Proxy Settings里,并勾上Others下的第一项,如图:

填好之后,Close关掉这个窗口,在主界面菜单栏选择Packages->Reload,这样就能获得工具包列表,并且可以正确执行安装了。安卓各平台对应的SDK Platform根据需要安装,但是这几项是必须安装的:
等待安装完成,SDK的配置就完毕了。启动Visual Studio,在菜单栏选择工具->选项,在左侧找到Xamarin->Android设置,将Android SDK位置设置为你存放SDK的路径,直至路径左侧显示绿色对勾:

这一步完成后,Visual Studio应该就能正确编译Android应用了(如果您拥有合适版本的安卓手机,并已经打开了USB调试,那么请直接跳到4,不用看下一节)。但是在测试环境被搭建好之前,我们还无法对其的工作进行测试。
3、测试用虚拟机推荐
本节针对没有可用的安卓测试机的读者。
虚拟机是测试的关键。目前常用的开发用虚拟机有:谷歌安卓模拟器(官方),VS Emulator for Android(微软)。但是对于一般的计算机,我并不推荐上述两种:谷歌安卓模拟器运行效率向当低,而微软的安卓虚拟机复杂的网络共享方式不仅可能不会正常工作,甚至还会使主机产生麻烦的网络问题。这里我推荐一种基于Virtual Box的安卓虚拟机:Genymotion。Genymotion的个人版是免费的,而且运行起来相当高效,很适合作为测试用虚拟机。安装方式很傻瓜,我在此不作赘述,但是需要注意的是,Genymotion携带的Virtual Box版本过低不能正确运行在Windows10创意者更新上,所以推荐安装不携带Virtual Box的版本,然后手动安装Virtual Box的最新版本。
安装完毕之后,创建一个虚拟机,确保它能正常运行,这样你就拥有了一个不算专业,但可用的测试环境。
4、Hello, Android!
上述环境搭建完毕,是时候来尝试编写我们的第一个采用C#的Android程序了。启动Visual Studio,新建一个项目,看,Android的所有项目类型都可用了:

不同的是,它们的语言类型是C#。甚至,你还可以采用Xamarin.Forms技术同时编写三个平台的应用:

不过这里,我们还是新建一个普通的空白Android应用程序,耐心等待解决方案被创建完毕,观察解决方案管理器,你会发现某些地方,这个项目的结构和一个普通的Android应用很相似:

不同的是,代码采用了C#。我们修改那个Main.axml,让它看起来是这个样子:

这和普通的Android UI编写方式大同小异。我们双击打开MainActivity.cs,眼前是熟悉的C#代码:

需要指出的是,虽然这个例子我们体会不到跨平台的便利性,但是上面的using指令除了可以引用安卓特有的、位于Android空间下的名称空间以外,标准的.NET框架所包含的System名称空间也几乎全是可用的,这造就了Xamarin最大的优势,即可以跨平台共享代码:

我们编写OnCreate方法:

并且编写一个事件处理程序(技巧:λ表达式):
这样,我们的第一个用C#编写的Android应用就编写好了。启动虚拟机,或者把测试用手机连接至计算机(记得打开USB调试,虚拟机就不用了),等待正确连接之后,打开“运行”按钮右侧的下拉菜单选择你的设备,理论上,正常连接后它会显示你设备的名字:
执行我们的应用。编译过程和部署过程可能需要花费一定的时间,依各人计算机性能决定:


你可以像调试一个普通的C#程序一样给它加断点、监视和使用其它强大的调试工具:

如果你能做到上述几点,那么恭喜你,你的采用C#的安卓开发环境搭建完成了。你可以尝试在代码文件里编写你熟悉的C#语言,即使你完全没接触过Android开发,你也能轻易做出一个颇具规模的Android应用程序。iOS可以采用相同的方式开发,但是你必须拥有一台Mac作为渲染和调试服务器,这也许是苹果公司的策略导致的。
如果你需要在Android和iOS平台上(也许会包括UWP平台)同时维护移动应用,Xamarin绝对是个省时省力的选择;即使你只需要开发某一个特定平台的应用,Xamarin也不失为一个优秀的平台。
相关资讯
最新热门应用
非小号交易平台官网安卓版
其它软件292.97MB
下载
币交易所地址
其它软件274.98M
下载
iotx交易所app
其它软件14.54 MB
下载
zt交易所安卓最新版
其它软件273.2 MB
下载
币拓交易所bittok
其它软件288.1 MB
下载
u币交易所平台app
其它软件292.97MB
下载
热币全球交易所app官网版
其它软件287.27 MB
下载
多比交易平台app
其它软件28.28MB
下载
币赢交易所app官网安卓版
其它软件14.78MB
下载
toncoin币交易所安卓版
其它软件48MB
下载