Xamarin 简介

2025年3月17日 | 阅读 8 分钟

Xamarin 是一家成立于 2011 年的软件公司。微软于 2016 年近期收购了 Xamarin。Xamarin 为开发人员提供了广泛的工具,可用于开发跨平台移动应用程序。

它是一个使用 C# 开发跨平台移动应用程序的框架。有各种框架提供跨平台应用开发。它们使用 HTML 和 JavaScript。借助此框架,我们可以使用 JS 库开发类似网站的移动应用程序。网站被打包在一个容器中,给人一种原生应用的感觉。

Xamarin 之所以与众不同,是因为它提供了一种单一的语言 C# 和运行时,可以在三个移动平台(Android、iOS 和 Windows)上运行。通过 Xamarin,我们可以开发出外观和感觉完全原生的移动应用程序。在 Xamarin 中,我们编写一个 C# 代码库,该代码库可以访问原生 SDK 的所有功能。

要与 Visual Studio 一起下载,Xamarin 工具已准备就绪。要在 Windows 上使用 Xamarin,我们需要安装 Visual Studio,它可以是免费版本或高级许可证。之后,我们需要对其进行配置。

Xamarin 安装

跨平台

对于移动、平板电脑和桌面应用程序,Xamarin 提供跨平台开发解决方案。

构建移动应用程序可能很容易,就像打开 IDE、编写和测试应用程序然后提交到应用商店一样。它涉及一个流程,包括前期设计、可用性测试、在数千种设备上进行 QA 测试、完整的 Beta 生命周期,然后以多种不同的方式进行部署。

当我们考虑如何构建 Android 和 iOS 应用程序时,许多人认为原生语言 Objective-C、Swift、Java 和 Kotlin 是唯一的选择。

Xamarin 允许我们使用 C# 进行开发,其类库和运行时可在包括 iOS、Windows 和 Android 在内的许多平台上运行。 Xamarin 结合了原生平台的所有能力,并增加了自己的几个强大功能,这些功能是:

Xamarin 结合了原生平台的所有能力,并增加了自己的几个强大功能,这些功能是:

1) SDK 完全绑定: Xamarin 包含 Android 和 iOS 上所有 SDK 的绑定。这些绑定是强类型的,这意味着它们易于导航和使用。Xamarin 在编译时和开发期间都提供强大的类型检查。这可以减少运行时错误并提高应用质量。

2) Objective-C、Java、C 和 C++ 互操作: Xamarin 提供直接调用 Objective-C、Java、C 和 C++ 库的设施。它使我们能够使用已经创建的大量第三方代码。通过这一点,我们可以利用 Objective-C、Java 或 C/C++ 编写的现有 iOS 和 Android 库。此外,Xamarin 还提供绑定项目,允许我们使用声明性语法高效地附加原生 Objective-C 和 Java 库。

3) 现代语言构造: Xamarin 应用程序是用 C# 编写的。C# 是一种现代语言,与 Objective-C 和 Java 相比有显著的改进。它包含*动态语言特性、*Lambda、*LINQ 等函数式构造、并行编程特性、复杂的*泛型等。

4) 出色的基类库: Xamarin 应用程序使用 .NET BCL。这是一个广泛的类集合,具有全面而简化的功能,例如强大的 XML、数据库、序列化、字符串、IO、网络支持等。现有的 C# 代码可以编译用于应用程序,从而可以访问数千个允许我们执行 BCL 中未涵盖的操作的库。

5) 现代集成开发环境 (IDE): Xamarin 在 Windows 上使用 Visual Studio,在 macOS 上使用 Visual Studio for Mac。这些都是现代 IDE。它们包括代码自动完成、复杂的项目和解决方案管理系统、全面的项目模板库、集成的源代码管理等功能。

6) 移动跨平台支持: Xamarin 为 iOS、Android 和 Windows 三大主要移动平台提供强大的跨平台支持。应用程序可以编写为共享高达 90% 的代码。移动库提供统一的 API 来访问所有三个平台上的共享资源,因为它降低了移动开发人员的开发成本和上市时间。它面向三个最受欢迎的移动平台。

Xamarin 是最强大、最全面的功能集,为想要使用现代语言和平台开发跨平台移动应用程序的应用程序开发人员填补了空白。

Xamarin 的必要性

Xamarin 结合了原生平台的所有强大功能,还包含了其自身的功能。

  • Xamarin 应用程序是使用 C# 开发的。C# 是一种现代语言,与 Objective-C 和 Java 相比有许多改进。
  • Xamarin 提供直接包含 Objective-C、Java 和 C++ 库的便利。它使我们能够重用所有 3rd 方代码库,这些代码库是 Java、Objective-C 或 C++。
  • Xamarin 为三大主要移动平台(Android、iOS 和 Windows)提供跨平台支持。应用程序可以共享 90% 的代码库。
  • Xamarin 降低了移动应用程序开发的成本和时间。
  • Xamarin 提供大量类库。
  • Xamarin 提供强大的编译时检查。这将导致更少的运行时错误和高质量的应用程序。

Xamarin 的工作原理

Xamarin 提供两个商业产品:Xamarin.Android、Xamarin.iOS。两者都建立在 Mono 之上,Mono 是 .NET 框架的开源版本,基于已发布的 .NET ECMA 标准。Mono 的存在时间几乎与 .NET 框架本身一样长,并且可以在包括 Linux、Unix、FreeBSD 和 macOS 在内的几乎所有平台上运行。

Xamarin 已将 Android 和 iOS SDK 完全转换为 C#,以便开发人员可以熟悉。我们可以轻松地为两个平台使用相同的代码库,而无需一直记住不同语言的语法。用户界面也保持不变。Xamarin 分别为两个平台构建,然后必须由共享代码库绑定。创建用户界面的方法有两种。第一种是使用原始的本地方法来构建 UI。另一种是使用**Xamarin.Forms**。这些表单可用于一次性为不同平台制作 UI,如果选择它们而不是原生 UI 技术,则可以实现 100% 的代码共享。当所有 UI 工作完成时,最困难的阶段是将 UI 连接到代码库。可以通过两种代码共享方法再次实现此连接:

  1. 共享项目
  2. 可移植类库 (PCL)。

Xamarin 的特点

  • Xamarin 支持可穿戴设备,如 Android Wear 和 Apple Watch。通过从 **XamarinCo Component Store** 下载简单的插件,可以在其原生应用程序中包含这些可穿戴设备的功能。
  • 热门插件是跨平台的,如文本转语音和电池状态。Xamarin Component Store 中也提供特定于平台的插件,例如 Google Play 结算支持插件。
  • Xamarin 基于的跨平台应用程序可以轻松地与 Parse、Microsoft Azure 等大多数流行的后端平台集成。
  • Xamarin 中的应用程序索引可让通常在用户使用几次后就被遗忘的应用程序出现在搜索结果中。
Xamarin 移动应用程序开发提供了一个可行的跨平台解决方案,可在多个操作系统和设备上运行。自推出以来,Xamarin 一直被用作强大的跨平台应用开发平台,可帮助为所有设备系统构建单个应用程序。然而,Xamarin 应用开发既有优点也有缺点。

Xamarin 的优点

1) 快速的应用开发周期

Xamarin 应用开发平台最重要的部分是它包含可重用代码,其中 90% 可用于在各种平台上开发应用程序。编码基于 C# 语言和 .Net 库。由于开发人员可以重用 Xamarin 的大部分原始代码来创建跨不同平台的应用程序。由于跨不同操作系统的简化代码共享,用户的产品开发周期缩短了。

2) 原生应用

任何应用程序的解决方案都是原生设计。这就是 Xamarin 及其独特方法出现的地方。Xamarin Studio 提供了原生 UI 的优势、对特定设备功能的访问以及最重要的是,原生性能。在不同平台之间共享代码是一项轻松的任务,这有助于我们缩短开发生命周期。

Xamarin Introduction

3) 共享的应用逻辑

除了原生 UI 之外,Xamarin 最强大的功能是共享的应用逻辑,这使其成为最有价值和最易于使用的跨平台开发工具。UI 层下的应用程序逻辑,如输入验证、Web 服务调用、数据库交互和后端企业集成,都在 C# 中编写一次。开发人员可以跨各种操作系统共享 75% 的代码。这节省了在应用程序中重新编码的时间,并且出现 bug 的可能性更小。

Xamarin Introduction

4) API 集成

Xamarin 绑定了用于在其各自平台特定语言中构建 iOS、Android 和 Mac 应用程序的相同 API 和 UI 控件。对于 Windows 开发,Xamarin 与 Microsoft Visual Studio 提供 Windows Phone 和 Windows 应用程序。使用可移植类库 (PCL) 和适当的应用程序架构在 iOS、Android 和 Windows 之间共享代码。有了 Xamarin,总有支持。这些独特的绑定技术使我们能够在设备操作系统一出现新功能时就提供支持。单击相应平台的链接,了解其最新的 iOS 8 和 Android L(支持可穿戴设备)支持包。

5) Xamarin Component Store

Xamarin 相信协作和组件共享。开发人员只需几行代码即可从免费或付费组件中进行选择,其中包括 UI 控件、跨平台库和第三方 Web 服务。组件商店内置于 Xamarin Studio 和 Xamarin 的 Visual Studio 扩展中。

6) C# 的优势

C# 是一种简单、现代、通用的、类型安全的、纯面向对象的编程语言。作为面向对象语言,它是 C++ 的现代版本,允许将简单数据类型作为对象。C# 的类型安全性有助于防止类型错误。其简化的语法允许使用指针和头文件。命名空间和引用运算符被句点替换。C# 是一种出色的跨平台开发编程语言。

Xamarin Introduction

Xamarin 的缺点

1) 不可避免的软件开销

尽管 Xamarin 移动应用程序开发通过为所有平台创建单个应用程序来节省时间。另一方面,它还涉及到目标 OS 环境与 .Net 框架之间的代码和引用的链接,这表明启动和下载应用程序所需的时间增加了。

2) UI 开发耗时

在 Xamarin 平台上,时间在 UI 开发中变得至关重要。Xamarin 提供了在设备平台的目标之间重用代码的便利。创建核心 UI 的可移植版本很困难。这就是为什么 Xamarin 应用开发专家会为独立平台彻底执行部分编码,这是一个耗时的过程。

3) 应用文件大小问题

由于通用使用 Xamarin 的核心库和应用商店的功能,Xamarin 会占用更多空间来存储应用文件大小,并且应用文件大小不正确。商店中的大小可能在 3MB 到 15MB 之间。

结论

Xamarin 也被称为跨平台应用开发的王者。丰富的功能和由此带来的好处都指向跨平台原生应用程序。除了 Xamarin 的优点之外,它还拥有不断增长的 70,000 多名开发人员社区,他们一直在协作和改进软件。


下一个主题Xamarin 安装