构建移动应用程序可以像打开你的IDE一样简单, 塞点东西, 做一点快速测试, 并提交到一个App商店 —— 所有工作在一个下午完成。或者它可以是一个非常复杂的过程,包括严格的预先设计, 可用性测试, 成千上万的设备上的QA测试, 一个完整的beta生命周期, 然后是许多的部署方式。
在本文档, 我们将要全面介绍如何构建一个Xamarin移动应用程序, 包括: 1.必要条件 – 我们会枚举和审查构建iOS和Android应用程序的需求。 2.Xamarin简介 – Xamarin平台特性列表。 3.Xamarin如何工作? – Xamarin如何将C#带到iOS和Android开发的原理的简要概述。 4.入门! – 在iOS, Android, 或使用Xamarin.Forms在所有平台上,构建您的第一个Xamarin应用程序。
本文旨在介绍Xamarin平台。要了解更多关于构建移动应用程序从设计到测试的过程, 参阅移动应用开发生命周期简介 文档。
如果你想开发iOS, 无论你想在Xamarin Studio还是在Visual Studio中编写代码, 你手头上必须有一台装有最新OS X Mountain Lion系统的苹果MAC电脑。虽然Xamarin应用程序基于.NET BCL和用C#编写,Xamarin仍需要iOS SDK和Xcode以便编译。此外, iOS设备模拟仿真器是iOS SDK的一部分, 因此只能在Mac上。为了下载iOS SDK, 你必须是Apple开发者计划。这个计划需要升级会员,每年$99美金。
这里介绍的所有教程是基于最新版本。安装在下一教程中介绍。
在考虑如何构建iOS和Android应用程序时,许多人认为原生的语言Objective-C和Java, 分别是仅有的选择。然而在过去的几年中, 出现了新的完整平台的生态系统来构建移动应用程序。
Xamarin独特的地方是通过提供一个单一的语言 – C#, 类库, 并运行在跨所有三种移动平台:iOS, Android,和Windows Phone(Windows Phone的原生语言就是C#)上, 同时还编译成原生(非解释型的)应用程序,性能甚至可以满足苛刻的游戏。
每个平台都有不同的功能集,并且每种不同的地方都可以按原生的来编写应用程序 – 也就是说, 编译为本机代码的应用程序与底层Java子系统流利互操作。例如, 某些平台上只允许您用HTML和JavaScript开发应用程序,而一些又非常低级,只允许C/C++代码,甚至某些平台上不利用本机控件工具包。
Xamarin是独特的,它结合了所有的原生平台的力量,并增加了一些强大的自己的特点, 包括:
由于Xamarin的强大和全面的功能集, 应用程序开发人员希望使用一个现代语言和平台开发跨平台手机应用程序,它填补了一项空白。
注意:
此入门系列的重点是开始建立iOS和Android应用程序。如果你对构建Windows Phone感兴趣, Microsoft提供的教程在这里。如果你想要了解更多关于Xamarin跨平台开发(包括 Windows Phone), 你可以在这里找到指南。
让我们来看看这里的工作原理。
Xamarin提供了两个商业产品: Xamarin.iOS和Xamarin.Android。他们都建立在Mono之上, 这是一个基于.NET框架的开源版本,按已发布的.NET ECMA规格。Mono的历史差不多和.NET框架本身一样久,可在几乎任何平台上运行,包括Linux, Unix, FreeBSD和Mac OS X.
在iOS上,Xamarin的Ahead-of-Time(AOT)
编译器直接编译Xamarin.iOS应用程序到原生ARM汇编代码。在Android上,Xamarin的编译器编译到中间语言(IL),然后当应用程序启动时,Just-in-Time(JIT)
编译为本机程序集。
在这些情况下,Xamarin应用程序利用运行时自动处理一些事情,如内存分配, 垃圾收集,底层平台互操作,等等。
Xamarin 应用程序相对于叫做Xamarin Mobile Profile的一个.NET BCL的子集的的构建。这个profile专门为移动应用程序创建,并打包入MonoTouch.dll和Mono.Android.dll(分别为iOS和Android)。这很像Silverlight (和Moonlight)应用程序是对Silverlight/Moonlight .NET Profile的构建。实际上,Xamarin Mobile profile相当于Silverlight 4.0 profile重新添加一堆BCL类。
有关可用程序集和类的完整列表, 查阅 Xamarin.iOS 组合表 和 Xamarin.Android 组合表。
除了BCL, 这些.dlls
包括几乎所有iOS SDK和Android SDK,允许你直接从C#调用底层SDK APIs。
当 Xamarin 应用程序被编译, 结果是一个应用程序包, 要么是在iOS中的一个.app
文件, 要么是在Android中的一个 .apk
文件。这些文件和原生应用程序包没有什么区别,并且以同样方式部署。
现在您已经了解Xamarin是如何工作了, 是时候开搞了!
下一步是使用这些指南之一,开始创建第一个应用:
本文只是介绍了Xamarin平台。当你的应用程序运行时,真正的乐趣才开始。查阅Hello, iOS,Hello, Android, 和Xamarin.Forms简介指南以开始。