【问题标题】:Xamarin: Using Native libraryXamarin:使用本机库
【发布时间】:2013-03-23 20:37:59
【问题描述】:

1) 如果 iOS 和 Android 原生库可用,为了使用该库开发跨平台应用程序,应该采取哪些适当、高效且更容易的步骤?绑定Android库还是iOS?如果我们绑定 Android 原生库,是否可以在 Xamarin.iOS 应用程序中使用这个绑定的库,反之亦然?

2) 如果有可用的 C++ 库,是否可以使用该库来开发跨平台应用程序?

提前致谢!

(只是 Xamarin 的初学者,如果问题似乎不合适,请原谅)

【问题讨论】:

    标签: binding native xamarin


    【解决方案1】:
    1. 原生 iOS 和 Android 库通常是完全不同的(iOS 库通常用 Objective-C 编写,而 Android 库则用 Java 编写),因此它们的绑定会有所不同。即使 API 相同,Objective-C 和 Java 之间的差异也足以使绑定也必须不同。

    2. 是的,可以在 iOS 和 Android 项目中使用 C++,但机制不同。这里有几个选项:

      • 使用 SWIG 等工具为 C++ 库创建托管绑定。 This 也是一本有趣的书。

      • 创建一个包装 C++ 库的 C 库,然后使用托管代码中可用的标准 P/Invoke 机制与 C 库进行交互。

    【讨论】:

    • 谢谢!我正在使用的库不包含特定于平台的代码,仅用于将设备连接到远程服务器。该库可用于 Objectve-C、Java 和 C++。我需要绑定到它以作为 C# 类库访问。那么,如果我绑定这些库中的任何一个,我可以跨不同的 Xamarin 项目使用吗?例如:如果我将可用的 java 库绑定到 C#,我是否也可以在我的 Xamarin.iOS 项目中使用这个绑定的库?
    • 不,您将无法在 iOS 上使用 Java 绑定(也无法使用 Java 库本身),因为 Java 仅在 Android 上运行。但是,您应该能够在 iOS 和 Android 上使用 C++ 版本(在这种情况下,托管绑定也可以共享)。
    • 所以,现在我决定在我的跨平台应用程序上使用 C++ 版本的库。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-29
    • 2015-09-20
    • 2012-09-01
    • 2016-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多