好一阵子没碰FLASH相关技术了,最近心血来潮估狗了一下FLASH的近况,
发现今年有很大的转变,Adobe AIR 现在的维护将由 HARMAN 来接手,
Adobe则继续专注于 adobe Animate 软件动画开发,以及发布WebGL程式和动画这部分,
(WEBGL 为 Web API标准,可直接在浏览器中实现,无需在下载FLASH PLAYER插件并保
持其安全性更新,提供更高的安全性和便利性),WebGL相关建立和发布教学,
网络上很多教学资源就不多述..
HARMAN是韩国三星(Samsung)集团旗下的一间公司,
希望能对 PC端 和 移动端有一番新作为,
这是官网 https://airsdk.harman.com/
关于HARMAN的短中期计画和一些 Q & A 整理
Q:HARMAN 对 Adobe AIR做了什么?
HARMAN 和 Adobe 在 Flash Player 和 AIR 技术方面过去有着长期的合作关系,
随着 Adobe在2020年底终止对 Flash Player 和 AIR 的支援,HARMAN与 Adobe 达成了
一项协议,允许HARMAN承担支援和维护AIR runtime 和 SDK。由于HARMAN没有销售
ex:Adobe Animate 或 Adobe Flash Builder之类的工具中获得任何相关收入,因此,
HARMAN 提供 AIR SDK 作为商业许可的 software package,但具有免费方案,
以支援业余爱好者和极低收入的个人或公司。HARMAN希望继续支援和开发AIR软件,
以确保它对快速跨平台应用程序开发而言是有用且具有竞争力的。
Q:相对于Adobe,HARMAN提供哪些支援?
Adobe对AIR的支援将一直持续到2020年底,但仅适用于桌面平台,并限于安全修补程序
和必要的更新。这些将在 "32版" SDK下继续进行。HARMAN发布了 "33版",该版本最初仅
适用于Android平台,但将进行进一步的更新,直到 HARMAN 支援与Adobe相同的平台,即
Android、iOS、Windows和MacOS。HARMAN还将修复 runtimes 和 framework 中的错误,
并根据AIR社区的建议添加新的功能。
Q:HARMAN的长期计划是什么?
长期目标是扩大AIR的使用范围,以使更多开发人员可以使用AIR。为了实现这一目标,
HARMAN 首先将致力于确保必要的作业系统更新和错误修复来维护runtimes,并添
加新功能以使该平台对新开发人员更具吸引力。期望由AIR开发人员社区来驱动进行
更改(就漏洞修复和新功能的优先级而言),从而改善runtimes和SDK的功能和成熟度;
因此,每个版本在应用程序的稳定性、效能或功能方面均应为社区带来真正的利益。
Q:为什么必须为此付费?
为了 HARMAN 维护AIR,需要资助这项工作。过去 Adobe 从 AIR 和 Flash Player
的商业工具中免费获得了 AIR 和 Flash Player 的收益。
HARMAN 探索了许多商业模型,但从 AIR 社区的压倒性回馈得知,使用SDK工具的订阅
许可证将是最合适的选择,而不是将应用程序分发给最终用户有关的任何选择。
因此,HARMAN制定了一套适用于各种收入个人或公司的年度许可费,并对低收入的个人
或公司提供免费服务。
Q:HARMAN支援哪些平台?
由于Google要求对新应用程序提供64-bit支援,因此最初的重点一直放在Android平台上。
该版本现已发布,并且HARMAN将开始考虑推出适用于iOS、MacOS和Windows目标平台的
AIR SDK,以使其与Adobe一直支援的平台保持一致。所有这些平台都运行之后,HARMAN将
能够开始更新AIR API并在这些API上添加新功能。HARMAN还正在研究支援iPadOS的要求以
及将来MacOS更新所需的更改。
Q:AIR是否支援 64-bit Android目标?
到目前为止,HARMAN已经提供了对64-bit ARM Android目标(众所周知的“ armv8”或
“ ARM64”)的支援。连同以前的armv7支援,将涵盖绝大多数Android设备。SDK已为基
于Android x86 的平台提供了支援,并且HARMAN还将研究与之等效的64-bit x86_64,以
便希望在x86芯片组上部署的公司也能满足Google的要求。
Q:可以在Linux平台上获得AIR吗?
目前,HARMAN在Linux上支援AIR runtime的自定义旧版本,和支援Wayland,但具有一些
简化的功能。Adobe已从2.6版开始停止对AIR SDK的Linux支援。HARMAN正在考虑重新引入
对Linux的支援,但这可能取决于单独的资金来源,并且在可以支援的Linux的各种
程式库(libraries)和发行版方面可能受到限制。HARMAN 将在这里进一步研究和选择,
之后会有更多详细信息,阐明相关计划。
Q:可以在浏览器中建立AIR吗?
这是许多公司的要求,为AIR应用程序提供WebAssembly目标。这是一个有趣的概念,我们
需要进一步研究:由于运行沙箱,我们知道浏览器中的AIR会有局限性,但我们将进一步
研究这在任何程度上是否可行,之后将我们的计划更新于社区。
Q:如何获取最新版本的AIR SDK?
https://airsdk.harman.com/download,可下载最新版本。HARMAN将继续Adobe的做法,
为Flex开发人员和非Flex AIR开发人员提供不同的SDK包:Flex版本的工具较少,因此
仍将使用原始的Flex编译器,而不是引入的较新的ActionScript编译器用于AIR。
Q:HARMAN将为我们提供什么支援?
HARMAN将提供错误修复服务。HARMAN将对各种问题进行分类,并优先考虑那些被认为很
关键的问题,例如崩溃和没有解决方法。将为企业客户提供优惠的支援服务,
欢迎发送电子邮件讨论问题;一般错误也可以透过Daniel在Gamua设立的GitHub
进行报告: https://github.com/Gamua/Adobe-Runtime-Support/issues
Q:为什么初始启动画面出现在我的应用程序中?
HARMAN的AIR SDK版本将初始画面加载到未对AIR SDK进行有效付费订阅的人员打包的
应用程序中。这是为了提高人们对Adobe AIR的使用/流行的认识,因此会在首次启
动应用程序时短暂出现。
Q:如何移除启动画面?
要删除初始画面,您需要成为AIR SDK的付费订户,届时HARMAN将提供SDK的许可证文件。
如果安装正确,则在启动过程中打包的任何AIR应用程序都不会显示初始画面。请注意,
我们无法更改已生成的APK软件包的行为。
Q:如何构建64-bit APK?
使用AIR开发人员工具(ADT),可以为各种AIR目标平台生成APK文件。对于64-bit ARM
平台,现在有一种“ armv8”架构,可以通过“ -arch armv8”请求在APK目标详细信
息之后将其添加到命令行。这将导致一个APK文件,其中包含“ lib / arm64-v8a”子
文件夹,并在此处包含AIR的本机代码。如果使用IDE创建APK文件,则需要在AIR发行说
明中找到有关这些文件的适当说明。SDK的“ lib”文件夹中有一个名为adt.cfg的配置
文件,该文件可以覆蓋各种工具所使用的任何选项,这些工具可以用来确保您完全控制
要打包的体系结构。
Q:如何将我的应用上传到Play商店?
对于当前仅上传一个包含32位ARM版本的AIR的APK文件的用户,您现在还需要上传一个64
位ARM版本的APK。对于两个ARM体系结构,新应用程序还需要具有两个APK。两个APK文件
都必须具有相同的应用程序-但是,由于Play商店机制的原因,它们将需要具有不同的版
本代码。Play商店会根据该设备的功能制定出最合适的版本以提供给用户的设备:64位
Android实际上可以运行32位和64位应用程序,因此64位APK需要具有更高的版本版本代码
,以便在32位APK文件中进行选择。如果您使用错误的版本代码,将会看到关于64位APK被
32位APK完全遮盖的错误。
Q:为什么我需要多个APK?
将多体系结构支援添加到AIR时,可以在单个APK文件中包含AIR的ARM和x86版本,但是在
安装之前,所有这些都需要下载到每个用户的设备上,这是相当大的开销。由于开发人员
要求限制APK的大小,Adobe选择为不同的体系结构创建不同的APK,因此在ADT中引入了“
-arch”参数。通过添加armv8架构,这种模式得以继续。此后,Google引入了一种“
Android应用程序捆绑包”格式,该格式可以简化部署(在Play商店中生成适当的APK,
然后将其下载到最终用户的设备上),并且HARMAN正在研究是否可以将其用作ADT的输出
,而不是APK文件。
Q:Play商店说我的应用程序不兼容64位。
此错误最可能的问题是APK文件不包含AIR的64位版本。当使用Adobe Animate之类的IDE时
,在此提供了用于发布APK文件的特定“ ARMv8”选项之前,必须覆蓋IDE所使用的命令以
将应用程序打包为32位。SDK的“ lib”文件夹中有一个配置文件可用于执行此操作,因
此,请检查配置文件是否正确到位并具有正确的设置。发行说明中提供了更多讯息。
Q:Flash Builder在构建我的应用程序时显示错误。
与Flash Builder的兼容性发现了许多问题:主要的问题是Flash Builder文件夹中的Java
运行时环境需要更新-可以从Java 8开发工具包复制它。比较功能还存在一些问题,可能
会导致“内部编译器错误”消息,其中需要删除名为“ p2”的Flash Builder子文件夹。
可能还会发生其他一些问题,请参见发行说明中的链接。
Q:我使用ANE-是否需要这些的64位版本?
是的:ANE中需要为要打包的体系结构提供适当的平台支援。因此,在打包“ armv7”时
,您需要“ Android-ARM”,对于“ armv8”,则需要“ Android-ARM64”,对于“ x86
”,则需要“ Android-X86”。如果没有合适的ANE,则在打包APK时ADT应该会输出警告
消息,通知您它将使用默认(仅AS3)平台功能。
Q:如何创建支援64位Android的AIR本机扩展?
ADT已更新为还支持ANE软件包的“ Android-ARM64”平台。格式与Android-ARM或
Android-X86相同。如果ANE使用Java,则所有不同的Android平台都可以使用相同的
classes / jar文件,但是如果使用的是编译成.so文件的C / C ++代码,则需要使用
Android进行编译用于ARMv8(aarch64)架构的NDK。
Q:如果开发人员不再支持我的ANE,该怎么办?
这是许多人报告的问题。尽管可能会破解现有的基于Java的ANE,使其另外支援
Android-ARM64,但对于基于C / C ++的ANE来说是不可能的,并且始终值得从继续供货的
其他供应商那里购买ANE。支持他们的扩展。
Q:我有一个需要Flash Player的网站,如何在2020年以后继续使用?
基于Flash的Web应用程序有一些选项,尤其是在使用Flex时。HARMAN使用各种工具和技术
(包括Haxe,Apache Royale,Angular,OpenUI5和许多其他JavaScript框架)提供软件
服务,以支援从Flash / Flex迁移内容。如果可以将应用程序部署在浏览器之外,那么重
用基于Flash的技术通常会更简单:将应用程序迁移为使用AIR,或者如果它是一个使用大
量HTML / JS程式码的网站,那么HARMAN可以提供“打包的浏览器”解决方案的选项,
其中我们包装了浏览器引擎(例如Chromium)以及Flash Player的自定义版本,因此
该包是一个单独的可安装应用,纯粹旨在加载和运行Web应用程序。
有关这些选项的更多消息,[email protected]
Q:我可以在嵌入式和封闭式设备上分发Flash Player或AIR应用程序吗?
Adobe的Flash Player EULA以及Adobe和HARMAN的AIR SDK许可协议都对软件的使用和部署
有一些限制。但是,HARMAN多年来一直是Adobe的经销商和合作伙伴,以确保Flash
Player和AIR可以在嵌入式设备上以及在不符合标准/免费协议限制的情况下工作。如果要
将软件部署到封闭或嵌入式环境中,请透过[email protected]与我们联系,以讨
论我们提供的单独的运行时许可协议。
以上