提起Flash你们一定不陌生,很多4399,7K7K游戏,火柴人格斗动画等等都是采用Flash编写的
之前的各种Flash播放器新版本安卓早就不能用了,目前来看只能用这个
但是要注意,这款Flash播放器由于是第三方开发,对Flash内容的支持有限:仅部分支持AVM1(2009左右以及之前的Flash内容),几乎完全不支持AVM2(2013年之后的Flash内容)
使用方法:下个Zarchiver,找到swf文件,打开方式选择ruffle
一.直接下载
首先你需要一个Github账户,没有的话自己注册一个
访问https://github.com/torokati44/ruffle-android/
点Actions
找到最新的旁边是个对勾的构建,点进去
点击ruffle-release-apk下载apk文件
我已经忘记我Github账户的密码了,就不测试了,大致就这么个流程
二.自己编译
官方版是没有中文字库的,应该显示中文的地方会是空白
而且这个播放器经常更新以支持更多的API(也就是支持更多的swf文件)
如果你已经打算自己编译的话,你应该已经对相关知识有一定的了解,此处只说思路
1.安装Rust工具链以及Rust安卓工具链,这一步比较简单,去官网下个安装包就行
2.安装Android Studio并在SDK Manager下载安卓10(API29)的SDK
记住SDK的位置
3.克隆上面的那个仓库:https://github.com/torokati44/ruffle-android/
4.将以下内容加入到Windows系统环境变量中:
ANDROID_NDK_ROOT \SDK\ndk\23.0.7599858
ANDROID_SDK_ROOT \SDK
5.一会用Powershell命令行,而不是CMD命令行执行接下来的所有操作
要是cargo apk build命令报错了,就检查你1-5步做的对不对
6.下载ffdec flash反编译工具,一定要下载V17版本的,V11版本一会添加中文字库会内存溢出
7.修改作者仓库里\native\Cargo.toml文件,依赖部分wgpu改成 = "0.14.0"
8.按照作者的指南编译,但是执行到这一步
ANDROID_SDK_ROOT=$HOME/Android/Sdk/ ANDROID_NDK_ROOT=$HOME/Android/Sdk/ndk/24.0.8215888/ cargo apk build --release
的时候,不要执行前面的(Windows平台不支持这么配环境变量)
只执行
cargo apk build --release
然后执行到出现Compiling编译依赖的时候,按ctrl+c取消
9.进入
C:\Users\你的用户名\.cargo\git\checkouts\ruffle-xxxx\xxxx\core\assets文件夹,用ffdec打开noto-sans.swf
10.用ffdec的字体嵌入功能选择一个中文字体并嵌入(如果要分享编译好的包的话,务必选择开源字体)
11.保存swf,退出重进ffdec,打开刚刚的swf,切换到二进制模式,导出字体资源为noto-sans-definefont3.bin
12.用十六进制编辑器把noto-sans-definefont3.bin最开头的24个字节裁掉(12个十六进制字符)
一会要是编译成功了但是黑屏或者无响应,就检查9-12做的对不对
13.然后回到刚刚的native文件夹,
cargo apk build --release
,出现compiling字样再取消掉
14.用修改过的noto-sans-definefont3.bin把C:\Users\你的用户名\.cargo\git\checkouts\ruffle-xxxx里所有原来73KB的noto-sans-definefont3.bin都覆盖掉
15.
cargo apk build --release
直到成功,警告不用管
16.继续按作者的指南编译,然后在app文件夹里搜索apk