【问题标题】:Could I wrap c++ library to Adobe Air native extension for mobile IOS/Android我可以将 c++ 库包装到适用于移动 IOS/Android 的 Adob​​e Air 本机扩展吗
【发布时间】:2012-12-09 05:38:38
【问题描述】:

我可以将 C++ 库包装到 Adob​​e Air 原生扩展 IOS/Android 吗?

我有一个由第三方编写的 C++ 库。我想将该库用于移动的 adobe air 本机扩展? 我能做到吗。如果是这样,我在哪里可以找到一些指南?

【问题讨论】:

    标签: android c++ ios air adobe


    【解决方案1】:

    我将尝试回答问题的 Android 部分。

    我没有看到它在 Adob​​e Air 文档中明确说明这是可能的,但在 Adob​​e Air 的 Adob​​e 帮助文档中,Packaging a native extension: Building the native library 部分,它说:

    Android 原生库:当您使用 Android NDK 时,提供一个文件名如下的共享库(等等)

    您可能知道,NDK 可让您使用包括 C++ 在内的本机代码语言来实现部分 Android 应用。

    我认为文档中的这个引用意味着它是可能的。作为起点,我会熟悉 NDK 的细节。

    虽然这不是关于如何继续进行的详细指南,但我希望它可以为正确的方向提供指导。

    【讨论】:

    • 除了问题的 Adob​​e Air 部分之外,本机库实际上无法使用,除非它已经使用 NDK 工具链编译为所需的 Android ABI 分类,或者以源代码形式提供。
    • @Chris Stratton 感谢您的澄清。
    【解决方案2】:

    构建 ANE 以包装 C++ 库的另一种方法是使用新的 Adob​​e“C++ 到 Flash”编译器(以前称为 Alchemy)将其编译为 Flash 字节码。它可以生成一个您以后可以从 ActionScript 调用的 swf。这是一个tutorial,它解释了如何做到这一点。而here是它的官方网站。

    【讨论】:

      【解决方案3】:

      对于 iOS,如果您可以统计链接到它,您可以使用 c 库。 iOS 上的 ANE 不支持动态链接(从 3.2 开始,不确定新版本中是否有所改变)。静态链接在 Xcode 中是相当简单的过程,只需 google 即可。

      安卓系统:

      如果你有 .so 文件,你可以用 JAVA 编写你的 ANE 并使用 jni(System.loadLibrary) 与你的 cpp 库对话。它比完全在 CPP 中编写 ANE 要好。请参阅ane documentation“在 ANE 包中包含额外的 Android 共享 .so 库”部分了解更多信息。

      【讨论】:

        猜你喜欢
        • 2012-02-17
        • 2012-10-09
        • 2015-11-03
        • 2016-04-27
        • 2017-10-08
        • 1970-01-01
        • 1970-01-01
        • 2014-04-03
        • 1970-01-01
        相关资源
        最近更新 更多