使用Adobe Air构建Android本机库
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Adobe Air构建Android本机库相关的知识,希望对你有一定的参考价值。
我目前正在研究在AS3中使用Adobe Air sdk构建的android应用程序。我想知道是否可以编译一种我可以在Android原生应用程序(Java)中导入的UI库。基本上,我想用Adobe Air构建我的UI,但我的应用程序的主要部分是Java,本机方式。
我想到的是将adobe air-generated APK转换为我将在本机应用程序项目中导入的Jar文件,并调用一些在屏幕上显示内容的函数。
可能吗?我认为这可能是有可能的,因为当我不在应用程序中导入Adobe Air SDK时,我必须在Play商店中安装Adobe Air应用程序才能使我的应用程序正常工作。我在谷歌上找不到很多相关内容:s。
谢谢您的帮助。
是的,它可以(理论上)完成,但坚持你的帽子,这是一个坎坷的旅程! 我看到这是一个非常古老的问题,有一个新的赏金(提问者已经登录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代码。
我不是一个比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看起来很有希望。 我没有测试过这个库,但它可能对你有帮助。
有安卓工作室建立adobe air原生扩展的教程。
https://www.myflashlabs.com/build-ane-android-studio/
我根本不是Adobe AIR开发人员,但是,我开发了一些具有本机环境和某种框架(特别是PhoneGap)的Android应用程序。所以,这可以帮助你。
我不认为有任何工具可以直接将使用Adobe AIR,PhoneGap或任何其他基于HTML5的框架等框架构建的移动应用程序转换为原生Android应用程序,因为从技术上讲,在两者之间进行正确的映射是非常困难和不可行的。 HTML5的每个元素(或您的案例中的Flex元素)到相应的本机控件或逻辑。您可以做的最好的事情是使用框架提供的插件机制与Java交互,反之亦然,这就是框架存在的原因。对于大多数基于HTML5的框架,有一个插件机制,允许开发人员与本机功能(如后台服务,活动或任何其他本机资源)进行交互。甚至这些框架都是使用相同的模块化或基于插件的方法构建的,并且主要功能(访问相机,音频,SD卡等本机资源)的工作方式如下。我们必须在我们的应用程序中使用该功能之前启用该功能。
因此,在Adobe AIR中查找插件类型的机制。
希望这可以帮助。
也许这是一种帮助你的肮脏方式,但你可以:
- 在一台计算机上安装adobe air程序
- 复制adobe air程序的安装文件夹的文件
- 将所有这些文件嵌入java应用程序中
- 安装java应用程序
- 将adobe air文件保存在一个文件夹中
- 使用java启动adobe air(就像你将使用控制台一样,只需调用YourAirApp.exe)
以上是关于使用Adobe Air构建Android本机库的主要内容,如果未能解决你的问题,请参考以下文章
Adobe AIR Android FileStream 问题
Adobe Air .air文件:是32位,64位还是都不是?
如何将启动图像添加到 adobe air for android 应用程序?