1. 什么是Xamarin

简介: 1. 什么是Xamarin

Xamarin是一个 .NET 开源的平台,主要用于通过 .NET 构建 IOS 、 Android 以及 Windows App 。利用 Xamarin 我们可以管理不同平台 APP 的共享代码与基础平台代码的通信,并且 Xamarin 上开发的 APP 是在托管环境中运行的,也就是说它会帮助我们来管理内存分配、垃圾回收等事情。Xamarin 可以让开发人员跨平台共享应用程序的代码,这样就可以使用一种编程语言开发所有平台的 App 。


Tip:编译、部署 IOS 应用程序必须在 MacOS 种进行。

零、原理

Xamarin 可以在每个平台上创建本机 UI ,并在 C# 里编写跨平台的共享业务逻辑。


1.添加功能

Xamarin 除了包含目标平台的功能,还新增了如下功能:

  • 基础 SDK 全绑定:Xamarin 包含了 IOS 、 Android 平台几乎整个基础平台 SDK 的绑定。这些绑定都是强类型,这说明可以很简单的导航和使用并提供可靠的编译时类型检查以及开发过程,此外还可以减少运行时错误以及提高程序质量。
  • 互操作性: Xamarin 可以直接调用 Object-C 、 Java 、 C 以及 C++ 所开发的库,并且可以使用声明性语法绑定本机的 Object-C 以及 Java 库。
  • 充分利用 C# 语言的优势: Xamarin 使用 C# 编写 App ,可以充分利用 C# 的并行编程、泛型以及功能性构造等。
  • 稳定的 BCL :Xamarin 开发的 App 使用的是 .NET BCL ,BCL 是大量基础类的集合,可以快速的开发 App 。
  • 优秀的 IDE :开发人员使用 Visual Studio 就可以开发 Xamarin 应用程序。
  • 跨移动平台支持: Xamarin 对 iOS、Android 和 Windows 这三个主要平台提供复杂的跨平台支持,并且可以在这三个平台共享百分之九十的代码。


2.Xamarin.Android

Xamarin.Android 将 C# 编译为 IL ,启动应用程序时实时编译为本机程序集。 Xamarin.Android 开发的应用程序是运行在 Mono 环境中的,Mono 环境与 Android 运行时虚拟机并行运行。 Xamarin 会向 Android.* 和 Java.* 命名空间提供 .NET 绑定。 Mono 执行环境通过托管可调用包装器引入 Android.* 和 Java.* 命名空间,并向 Android 运行时提供 Android 可调用包装器,这使的两种环境可以相互调用代码。


3.Xamarin.IOS

Xamarin.IOS 将 C# 编译为 ARM 程序集代码。 Xamarin 使用选择器向托管 C# 公开 Objective-C,并使用注册器向 Objective-C 公开托管 C# 代码。选择器和注册器共同称为“绑定”,使 Objective-C 和 C# 可以进行通信。


4.Xamarin.Essentials

Xamarin.Essentials 是为本机设备功能提供跨平台 API 的库。 它和 Xamarin 一样是一种简化本机功能访问过程的抽象。 Xamarin.Essentials 提供的功能包括:

  • 设备信息
  • 文件系统
  • 加速计
  • 电话拨号程序
  • 文本到语音转换
  • 屏幕锁定


5.Xamarin.Forms

Xamarin.Forms 是一个开源 UI 框架。它可以让开发人员从共享代码生成 iOS、Android 和 Windows 应用程序。 Xamarin.Forms 使用 XAML 来创建 UI 界面。这些 UI 会在不同平台上呈现为本机控件。 Xamarin.Forms 提供的功能包括:

  • XAML 用户界面语言
  • 数据绑定
  • 笔势
  • 效果
  • 样式

一、总结

这篇主要简单的介绍了一下 Xamarin 相关的知识,属于入门级别的内容。从下节开始我将的通过贯穿整个专栏的例子来讲解 Xamarin.Forms 。这里要提醒各位读者的是,这个专栏讲解的是 Xamarin.Forms 的知识,它是整个 Xamarin 的基础。后续专栏我将讲解 IOS 、Android 、 Essentials 以及 XAML 相关的内容 。



目录
相关文章
|
存储 JSON 缓存
CocosCreator3.8研究笔记(十五)CocosCreator 资源管理Asset Bundle
CocosCreator3.8研究笔记(十五)CocosCreator 资源管理Asset Bundle
1052 0
|
算法 网络协议 数据安全/隐私保护
NTP网络时间同步协议详解
NTP协议是互联网上用于同步计算机时间的标准,它利用分布式时间服务器网络,通过分层管理和本地路由算法确保时间的准确性。协议涉及时间偏差、延迟和差量三个概念,用于测量与参考时钟的同步状态。基本NTP数据包包含48字节,如头部和时间戳,关键字段如跳跃指示器(LI)、版本号(VN)、模式(Mode)、层次(Stratum)等影响同步过程。协议还包括时间戳以记录不同阶段的时间点。NTP认证可选,用于数据安全。
NTP网络时间同步协议详解
|
SQL 缓存 Java
MyBatis缓存-提高检索效率的利器--二级缓存
MyBatis缓存-提高检索效率的利器--二级缓存
184 0
|
物联网 智能硬件 安全
|
6天前
|
弹性计算 人工智能 安全
云上十五年——「弹性计算十五周年」系列客户故事(第二期)
阿里云弹性计算十五年深耕,以第九代ECS g9i实例引领算力革新。携手海尔三翼鸟、小鹏汽车、微帧科技等企业,实现性能跃升与成本优化,赋能AI、物联网、智能驾驶等前沿场景,共绘云端增长新图景。
|
12天前
|
存储 弹性计算 人工智能
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
2025年9月24日,阿里云弹性计算团队多位产品、技术专家及服务器团队技术专家共同在【2025云栖大会】现场带来了《通用计算产品发布与行业实践》的专场论坛,本论坛聚焦弹性计算多款通用算力产品发布。同时,ECS云服务器安全能力、资源售卖模式、计算AI助手等用户体验关键环节也宣布升级,让用云更简单、更智能。海尔三翼鸟云服务负责人刘建锋先生作为特邀嘉宾,莅临现场分享了关于阿里云ECS g9i推动AIoT平台的场景落地实践。
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
|
3天前
|
云安全 人工智能 安全
Dify平台集成阿里云AI安全护栏,构建AI Runtime安全防线
阿里云 AI 安全护栏加入Dify平台,打造可信赖的 AI
|
11天前
|
人工智能 自然语言处理 自动驾驶
关于举办首届全国大学生“启真问智”人工智能模型&智能体大赛决赛的通知
关于举办首届全国大学生“启真问智”人工智能模型&智能体大赛决赛的通知