我可以将c++库打包为适用于移动IOS/Android的Adobe Air原生扩展吗

Could I wrap c++ library to Adobe Air native extension for mobile IOS/Android

本文关键字:Android Adobe Air 扩展 原生 IOS 移动 c++ 适用于 我可以      更新时间:2023-10-16

我可以将C++库封装到Adobe Air本机扩展IOS/Android吗?

我有一个由第三方编写的C++库。我想使用该库为移动设备进行adobeair原生扩展吗?我能做到吗?如果能,我在哪里可以找到一些指导方针?

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

我还没有在Adobe Air文档中明确指出这是可能的,但在Adobe Air的Adobe帮助文档中的"打包本地扩展:构建本地库"一节中,它说:

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

您可能知道的NDK允许您使用包括C++在内的本地代码语言来实现Android应用程序的某些部分。

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

虽然这不是一个关于如何处理的详细指南,但我希望它能为正确的方向提供一个指针。

构建ANE来包装C++库的另一种选择是使用新的Adobe"C++到Flash"编译器(以前称为Alchemy)将其编译为Flash字节码。它可以生成一个swf,以后可以从ActionScript调用该swf。这是一个教程,解释了如何做到这一点。这是它的官方网站。

对于iOS,如果可以统计链接到c库,则可以使用它。iOS上的ANE不支持动态链接(截至3.2,不确定更新版本中是否发生了更改)。静态链接在Xcode中是一个相当容易的过程,只需谷歌即可。

适用于Android:

如果你有.so文件,你可以用JAVA编写ANE,并使用jni(System.loadLibrary)与你的cpp库对话。这比完全用CPP写ANE要好。请参阅电子文档"包括ane包中的其他Android共享.so库"部分了解更多信息。