我已经阅读了很多关于Xamarin的文档,我的理解是它通过C#和.NET公开了每个平台上的本机API,这种方式提供了一种一对一的绑定。生成的本机构建包含一些适用的.NET库(基于链接器优化)。
但是,我似乎无法找到有关本机构建本身实际发生情况的任何信息。
假设我的理解是正确的,我的问题是: 在本机构建中,您编写的代码是否通过调用构建中包含的本机.NET函数调用本机API函数?
答案 0 :(得分:2)
简短的回答是:是的,它通过您已经熟悉的绑定概念,通过在Mono上运行的.NET代码调用本机API。
Xamarin使用这些绑定从您的C#代码调用本机代码。根据您运行的平台,存在一些差异。
<强>的iOS 强>
您的IPA文件将包含两件事:
Mono运行时和Objective-C运行时都在类UNIX的内核上运行。
请查看this Xamarin iOS architecture documentation以获得更详尽的解释。
<强>的Android 强>
Android的理解和解释要复杂一些。这是因为某些API仅通过Android Runtime API公开。
Android中的绑定正在通过以下概念进行:
The Xamarin Android architecture documentation非常详细地解释了这些概念和内部运作。