13

我目前正在开发一个在 AS3 中使用 Adob​​e Air sdk 构建的 Android 应用程序。我想知道是否可以编译一种我可以在 Android 本机应用程序 (Java) 中导入的 UI 库。基本上,我想使用 Adob​​e Air 构建我的 UI,但我的应用程序的主要部分是使用 Java,即本机方式。

我的想法是将 adobe air 生成的 APK 转换为我将在本机应用程序项目中导入的 Jar 文件,并调用一些在屏幕上显示某些内容的函数。

可能吗?我认为这可能是可能的,因为当我不在应用程序中导入 Adob​​e Air SDK 时,我必须在 Play Store 中安装 Adob​​e Air 应用程序才能使我的应用程序正常工作。我在谷歌上找不到很多关于这个的东西:s。

谢谢您的帮助。

4

4 回答 4

2

是的,它可以做到(理论上),但要抓住你的帽子,这是一段颠簸的旅程!

我看到这是一个非常古老的问题,有一个新的赏金(提问者已经 3 年没有登录了!),但是我们开始......
这个方法进入了 android java 应用程序如何构建和运行的核心(即DEX,因此它可以与adobe-airANYTHING一起使用,这是基本的[通用方法])。(顺便说一下,您以一种令人困惑的方式使用本机一词,本机通常被理解为表示应用程序的 JNI (c++) 库元素)。
你说:

“我的想法是将 adobe air 生成的 APK 转换为我将在本机应用程序项目中导入的 Jar 文件,并调用一些在屏幕上显示内容的函数。”

Android 程序被编译成 .dex(Dalvik 可执行文件)[现在称为ART,但二进制兼容] 文件,这些文件又被压缩成设备上的单个 .apk 文件(与清单和资源等其他内容)。(解压缩 .apk 并查看内部)。

.jar 文件包含 DEX 文件(压缩)。(解压缩编译的 .jar 并查看内部)。

我以前做过一些这样的工作,这里有一个教程和编码示例的链接[由我测试](在 android studio + gradle 中)[通常需要自定义构建元素(我也给出了一个 ant 示例)]。

查看我的堆栈溢出答案动态加载 DEX 文件

这在理论上回答了您的问题,但它是基本的东西,复杂且有限制,难以编码和维护(资源是 a**e 中的真正痛苦)。

问题:这一切看起来都非常复杂和困难!

是的 !这是一件非常愚蠢且难以做到的事情!这就是为什么我们发明了跨平台框架(以及基于 Web 的代码 javascript/css/html5...)。未能通过 PORT 代码。

于 2016-10-07T01:00:43.823 回答
0

我更像是一个 Flash/AS3 编码器而不是 Java,所以不能给你一个完整的答案,但是......

更好的方法可能是仅User Interface 通过 Java 代码呈现基于 SWF 的自身(而不是将 SWF 编译为 APK 格式,然后尝试将 Flash APK 嵌入到 Android APK 中)。

这样,您的 SWF 也可以与 Java 函数进行通信(通过 AS3 的external Interface类)。当按下 SWF UI 上的按钮等时,更容易触发 Java 函数。

您只需要为 Java找到一个 SWF 渲染库

也许看看SWFTools。特别是SWF 类看起来很有希望。
我没有测试过这个库,但它可能会对你有所帮助。

于 2016-10-09T11:22:35.043 回答
-1

我根本不是 Adob​​e AIR 开发人员,但是,我已经开发了一些带有原生环境和某种框架(特别是 PhoneGap)的 Android 应用程序。所以,这可以帮助你。

我不认为有任何工具可以直接将使用 Adob​​e AIR、PhoneGap 或任何其他基于 HTML5 的框架构建的移动应用程序转换为原生 Android 应用程序,因为从技术上讲,在两者之间进行适当的映射非常困难且不可行HTML5 的每个元素(或您的情况下的 Flex 元素)到相应的本机控件或逻辑。您能做的最好的事情是使用框架提供的插件机制与 Java 交互,反之亦然,这就是框架存在的原因。大多数基于 HTML5 的框架都有一个插件机制,允许开发人员与原生功能(如后台服务、活动或任何其他原生资源)进行交互。甚至这些框架也是使用相同的模块化或基于插件的方法构建的,并且主要功能(访问相机、音频、SD 卡等原生资源)都是这样工作的。在我们的应用程序中使用该功能之前,我们必须启用该功能。

所以,在 Adob​​e AIR 中寻找插件类型的机制。

希望这可以帮助。

于 2012-09-03T13:57:50.697 回答
-1

也许这是一种帮助你的肮脏方式,但你可以:

  1. 在一台计算机上安装 adobe air 程序
  2. 复制adobe air程序安装文件夹的文件
  3. 将所有这些文件嵌入到 java 应用程序中
  4. 安装java应用程序
  5. 将 adobe air 文件保存在一个文件夹中
  6. 使用 java 启动 adobe air(就像您将使用控制台一样,对 YourAirApp.exe 的简单调用)
于 2012-09-25T15:17:38.803 回答