最近很忙,要咕咕咕了

MENU

简单地将flash游戏打包成apk文件

October 1, 2020 • Read: 1298 • 技术

第一步

首先你需要 Flash 动画的文件,比如SWF格式的动画文件

SWF文件或许有一些资源文件,可能是一个文件夹里的一堆动画文件

主要动画文件被播放时,会按照所指定的路径加载这些资源文件

所以打包的时候这些文件也需要打包进去

第二步

你要下载一个Adobe AIR SDK
前往下载

下载完以解压后即可

注意

为了避免一些问题,路径中最好是使用纯英文,同时也要避免路径中出现空格、特殊字符

第三步

Adobe AIR SDK是依赖于Java运行的

直接安装JAVA就行了

前往下载

如果不确定自己是否安装,打开cmd输入java并回车看看有没有显示信息,有的话就是装好了

如果提示java不是命令也不是程序那就是没有安装好

什么?不知道cmd是什么?百度吧,啥都有

第四步

我们需要创建动画信息文件

用记事本建立一个application的文件并改成xml的后缀名保存。

示例的application.xml

示例

<?xml version="1.0" encoding="utf-8" standalone="no" ?>
<!--
Usage:

To localize the description, use the following format for the description element.
<description>
<text xml:lang="en">English App description goes here</text>
<text xml:lang="fr">French App description goes here</text>
<text xml:lang="ja">Japanese App description goes here</text>
</description>

To localize the name, use the following format for the name element.
<name>
<text xml:lang="en">English App name goes here</text>
<text xml:lang="fr">French App name goes here</text>
<text xml:lang="ja">Japanese App name goes here</text>
</name>
-->
<application xmlns="http://ns.adobe.com/air/application/32.0";>
<id>sample</id>
<versionNumber>1.2</versionNumber>
<filename>sample</filename>
<description/>
<name>sample</name>
<copyright/>
<initialWindow>
<content> 开始游戏.swf</content>
<systemChrome>standard</systemChrome>
<transparent>false</transparent>
<visible>true</visible>
<fullScreen>true</fullScreen>
<aspectRatio>landscape</aspectRatio>
<renderMode>auto</renderMode>
<maximizable>true</maximizable>
<minimizable>true</minimizable>
<resizable>true</resizable>
</initialWindow>
<icon/>
<customUpdateUI>false</customUpdateUI>
<allowBrowserInvocation>false</allowBrowserInvocation>
</application>

需要注意的是这两条:

  1. 设置横屏:aspectRatio = landscape
  2. 设置全屏:fullscreen = true

建议将<content>里的的文件名改成英文

比如主要动画文件的文件名为“开始游戏.swf”改为“start.swf”

再将把application.xml文件中的

<content>开始游戏.swf</content>

改成

<content>start.swf</content>

content里的文件名必须指向一个存在的动画文件

这个文件的详细配置可以去看看这篇文章
跳转

官方帮助文档
跳转

第五步

去创建一个签名证书

生成APK的时候需要用到签名证书文件

如果你手上没有现成的数字签名证书

你需要自己创建一个签名证书

在cmd中输入以下指令

指令

"H:\sdk\AIRSDK_Compiler\bin\adt.bat" -certificate -cn SelfSigned 2048-RSA "H:\sdk\233.pfx" 233

上面的 "H:\sdk\AIRSDK_Compiler\bin\adt.bat" 中的SDK的路径应该改为你自己SDK的路径

"H:\sdk\233.pfx" 就是将要生成的证书文件的路径和文件名,你可以自己设置

233是证书的密码,你也可以自己设置,并且要记住密码,后面的步骤还要用到

第六步

这是最后一步,在cmd中执行指令

指令

"H:\sdk\AIRSDK_Compiler\bin\adt.bat" -package -target apk -storetype pkcs12 -keystore "H:\sdk\233.pfx" "H:\swf\233.apk" "H:\swf\application.xml" "H:\swf\start.swf" "H:\swf\lib" "H:\swf\mp3"

其中的路径应当按照实际情况进行修改

"H:\sdk\233.pfx"表明用于给应用程序签名的证书文件位于"H:\sdk\233.pfx"

"H:\swf\233.apk"指定要生成的apk文件路径

"H:\swf\application.xml"指定第四步中我们创建的application.xml的路径

"H:\swf\start.swf"指定主要动画文件的路径

"H:\swf\lib"指定要打包进去的其他资源的路径

"H:\swf\mp3"同样是要打包进去的其他资源

若是还有其他资源,可以继续在后面加上路径(原作者未注明,此处为我补充)

比如我们还要加入"mp4"这个文件夹,就在"H:\swf\mp3"的后面加上"H:\swf\mp4"

执行这条指令以后,会要求你输入证书文件的密码

注意

输入密码的时候不会显示你输入了多少个数字

输入成功以后就会开始打包了

打包完后APK文件就会出现在你指定的路径

更完整的adt帮助文档
跳转

补充一下

对于体积较大的动画文件,打包会需要很多内存,默认情况下 JAVA 给 ADT 提供内存可能是不够的,这时我们要微调一下指令,比如:
java -Xmx1024M -jar "H:\sdk\AIRSDK_Compiler\lib\adt.jar" -package -target apk -storetype pkcs12 -keystore "H:\sdk\233.pfx" "H:\swf\233.apk" "H:\swf\application.xml" "H:\swf\start.swf" "H:\swf\lib" "H:\swf\mp3"
比起之前的指令,只有一处修改了,就是 adt.bat 改为了 java -Xmx1024M -jar adt.jar ,意思是用 java 运行 adt.jar 程序,所允许使用的最大内存是 1024M ,具体分配多少内存可以自己改

内容修改自贴吧网友asdasd1dsadsa的教程

修改了部分内容,加入一些我的理解和操作过程,补充了一些内容

还精简了一部分语言,使教程更容易理解(自认为)

同时去除了AIR包部分内容(因为我只移植了swf的文件)

感兴趣的可以去原贴看看
原贴

注意

原作者的信息文件中是

原版

<application xmlns="http://ns.adobe.com/air/application/30.0">

在我的项目中,原作者的这个数值无法使用,会导致黑屏,以下是修改版

修改后

<application xmlns="http://ns.adobe.com/air/application/32.0">

上面的示例是32.0,如果有问题,可以改回原作者的30.0

以上是所有内容

我移植的游戏涉及限制级内容,此处不放出

Last Modified: December 20, 2021
Archives QR Code
QR Code for this page
Tipping QR Code
Leave a Comment

已有 1 条评论
  1. 所以说,又研究安卓去了?@(滑稽)

离2025新年仅剩:-90天-23时-33分-60秒523毫秒