网站首页 > 安卓游戏> 文章内容

微软Xamarin:采用C的安卓开发搭建

※发布时间:2017-5-12 20:41:11   ※发布作者:habao   ※出自何处: 

  对于一家希望拥有移动终端用户的公司来说,不得不同时考虑两个(或三个,虽然比较少就是了)平台的移动应用程序开发。然而令这些公司头疼的是,安卓开发多采用Java、iOS开发多采用Swift(或OC)、Win10UWP开发多采用C#,这意味着这些公司不得不雇佣好几批工程师,或者让同一批工程师同时多个互不兼容的项目(当然,这些人的工资就得高一点)。

  解决这一问题目前唯一成熟的方案是Xamarin,这是微软旗下的、致力于使框架兼容其它移动端平台上的项目。我在以前的文章里提到过,这个所谓“框架”的东西,能抹平不同系统平台上API的差异,这意味着开发人员将能通过Xamarin在三个平台之间共享核心代码。

  举个例子:假定某论坛需要多平台移动客户端,那么该平台需要三个的项目,每一个项目都有一套的业务代码;每次论坛API升级,三个项目必须分别被更新,否则App就会不可用。假如这个论坛采用Xamarin开发它的客户端,工程师们就能在三个平台之间共享超过95%的业务代码;无论是开发时,还是API更新时,只需要将这个共享的业务代码一次,就能同时应用在三个项目上。

  搭建这样一个采用C#的开发并不复杂:它依然可以集成至Visual Studio。下面以Visual Studio 2017作为例子,来该如何安装Xamarin。

  找到一个名为VSInstaller的应用程序(不出意外的线的朋友可以在开始菜单里找到它),启动它。你已经安装的VS产品会被呈现在第一位。单击产品标识下面的“修改”按钮,修改程序功能。勾上这一项:

  并在右边的详细目录里,去掉Android SDK和Android NDK(因为它们在中国是无法访问的,这会导致VS功能修改失败):

  由于刚刚去掉了Android SDK的安装,我们的Xamarin虽然可以编写代码,但是却不能编译和调试。现在我们来手动获取Android SDK。

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

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

  填好之后,Close关掉这个窗口,在主界面菜单栏选择Packages-Reload,这样就能获得工具包列表,并且可以正确执行安装了。安卓各平台对应的SDK Platform根据需要安装,但是这几项是必须安装的:

  等待安装完成,SDK的配置就完毕了。启动Visual Studio,在菜单栏选择工具-选项,在左侧找到Xamarin-Android设置,将Android SDK设置为你存放SDK的径,直至径左侧显示绿色对勾:

  这一步完成后,Visual Studio应该就能正确编译Android应用了(如果您拥有合适版本的安卓手机,并已经打开了USB调试,那么请直接跳到4,不用看下一节)。但是在测试被搭建好之前,我们还无法对其的工作进行测试。

  虚拟机是测试的关键。目前常用的开发用虚拟机有:谷歌安卓模拟器(),VS Emulator for Android(微软)。但是对于一般的计算机,我并不推荐上述两种:谷歌安卓模拟器运行效率向当低,而微软的安卓虚拟机复杂的网络共享方式不仅可能不会正常工作,甚至还会使主机产生麻烦的网络问题。这里我推荐一种基于Virtual Box的安卓虚拟机:Genymotion。Genymotion的个人版是免费的,而且运行起来相当高效,很适合作为测试用虚拟机。安装方式很傻瓜,我在此不作赘述,但是需要注意的是,Genymotion携带的Virtual Box版本过低不能正确运行在Windows10创意者更新上,所以推荐安装不携带Virtual Box的版本,然后手动安装Virtual Box的最新版本。

  安装完毕之后,创建一个虚拟机,确保它能正常运行,这样你就拥有了一个不算专业,但可用的测试。

  上述搭建完毕,是时候来尝试编写我们的第一个采用C#的Android程序了。启动Visual Studio,新建一个项目,看,Android的所有项目类型都可用了:

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

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

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

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

  这样,我们的第一个用C#编写的Android应用就编写好了。启动虚拟机,或者把测试用手机连接至计算机(记得打开USB调试,虚拟机就不用了),等待正确连接之后,打开“运行”按钮右侧的下拉菜单选择你的设备,理论上,正常连接后它会显示你设备的名字:

  如果你能做到上述几点,那么恭喜你,你的采用C#的安卓开发搭建完成了。你可以尝试在代码文件里编写你熟悉的C#语言,即使你完全没接触过Android开发,你也能轻易做出一个颇具规模的Android应用程序。iOS可以采用相同的方式开发,但是你必须拥有一台Mac作为渲染和调试服务器,这也许是苹果公司的策略导致的。

  如果你需要在Android和iOS平台上(也许会包括UWP平台)同时移动应用,Xamarin绝对是个省时省力的选择;即使你只需要开发某一个特定平台的应用,Xamarin也不失为一个优秀的平台。

  软媒旗下软件:魔方旗鱼浏览器(极速内核)软媒时间酷点桌面闪游浏览器(IE内核)Win7优化大师Win8优化大师Win10优化大师软媒手机APP应用

推荐:

关键词:安卓开发