使用Adobe Air构建Android本机库

问题描述 投票:12回答:5

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

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

可能吗?我认为这可能是有可能的,因为当我不在应用程序中导入Adobe Air SDK时,我必须在Play商店中安装Adobe Air应用程序才能使我的应用程序正常工作。我在谷歌上找不到很多相关内容:s。

谢谢您的帮助。

java android actionscript-3 air
5个回答
1
投票

是的,它可以(理论上)完成,但坚持你的帽子,这是一个坎坷的旅程! 我看到这是一个非常古老的问题,有一个新的赏金(提问者已经登录3年了!),但是我们走了...... 这个方法是如何构建和运行android java应用程序的核心(即DEX,因此它将与adobe-air或ANYTHING一起使用,它是基本的[通用方法])。 (顺便说一下,你以一种令人困惑的方式使用native这个词,native通常被理解为app的JNI(c ++)库元素)。 你说:

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

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

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

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

看看我的堆栈溢出答案Dynamic loading of DEX files

这在理论上回答了你的问题,但它是基本的东西,复杂而且有局限性,使得难以编码和维护(资源是一个真正的痛苦)。

Question: This all seems very complicated and hard !

是的 !这是一件令人难以置信的愚蠢难事!这就是为什么我们发明了跨平台框架(以及基于网络的代码javascript / css / html5 ......)。没有PORT代码。


0
投票

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

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

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

您只需要找到Java的SWF渲染库。

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


0
投票

有安卓工作室建立adobe air原生扩展的教程。

https://www.myflashlabs.com/build-ane-android-studio/


-1
投票

我根本不是Adobe AIR开发人员,但是,我开发了一些具有本机环境和某种框架(特别是PhoneGap)的Android应用程序。所以,这可以帮助你。

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

因此,在Adobe AIR中查找插件类型的机制。

希望这可以帮助。


-1
投票

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

  1. 在一台计算机上安装adobe air程序
  2. 复制adobe air程序的安装文件夹的文件
  3. 将所有这些文件嵌入java应用程序中
  4. 安装java应用程序
  5. 将adobe air文件保存在一个文件夹中
  6. 使用java启动adobe air(就像你将使用控制台一样,只需调用YourAirApp.exe)
© www.soinside.com 2019 - 2024. All rights reserved.