本文将逐步介绍如何针对 Android* 平台创建面向英特尔® x86 的 Haxe* 项目 (OpenFL*)。
Haxe 是一种开源编程语言。 其他大多数语言只能在它们自己的平台上运行(Java* 在 JVM 上运行,C# 在 .Net 上运行,ActionScript 在 Flash* Player 上运行),而 Haxe 是一种多平台语言。
你可以针对以下平台使用 Haxe:
- JavaScript*.你可以把 Haxe 程序编译成一个
.js
文件。 借助 auto completion 支持,你可以访问类型化的浏览器 DOM API。而且,所有依赖性都会在编译过程中解决。 - Flash.你可以把 Haxe 程序编译成一个
.swf
文件。 Haxe 能够兼容 Flash Player 6 至 11。 Haxe 提供出色的性能和语言特性来开发 Flash 内容。 - NekoVM*. 你可以把 Haxe 程序编译成 NekoVM 字节码。 它可用于譬如动态网页的服务器端编程(使用
mod_neko
for Apache),也可用于命令行或桌面应用,因为 NekoVM 可通过一些其他 DLL 嵌入和扩展。 - PHP. 你可以把 Haxe 程序编译成
.php
文件。 这样你就可以使用严格类型化的高级语言(比如 Haxe),同时完全兼容现有服务器平台和资源库。 - C++. 你可以借助所需的 Makefile 直接从 Haxe 源代码生成 C++ 代码,这种强大功能可用于创建本机应用。 NME 库可使用该 C++ 代码在 iOS*,Android* 等平台上运行 Haxe 代码。 2.10 之后的版本还包含调试功能。
- C#和 Java.自 Haxe 3.0 起,你可以为这些对象生成源代码。
Haxe 的宗旨是让开发人员选择最佳的平台来完成特定工作。
设置和前提条件
开始前,你需要下载和安装以下组件:
- 下载 Android SDK
- 下载 NDK。
- 下载并安装 Cygwin*: 如果需要选择软件包,搜索并安装以下软件包:
- Autoconf,Automake,binutils,gcc-core,gcc-g++,gcc4-core,gcc4-g++,gdb,pcre,pcre-devel
- gawk,make,python
注: 你还需要选择 GUI 版本,否则将无法使用 NDK 创建项目。
- 下载 Java* 开发套件 (JDK).
- 下载 Apache Ant*。
接下来编辑环境变量。
- 设置 JAVA_HOME = 安装 Java JDK 的路径。 例如:
C:\Program Files\Java\jdk1.7.0_45
- 设置 ANDROID_SDK_ROOT = 访问 SDK 文件夹的完整路径。 例如: 下载并提取
D:\android\ 中的 ADT 捆绑程序包时,我的路径为: D:\android\adt-bundle-windows-x86-20131030\sdk
- 设置 NDK_ROOT = 访问 NDK 文件夹的完整路径。 例如:
D:\android\android-ndk-r9b
- 设置 NDK_ROOT = 访问 NDK 文件夹的完整路径。 例如:
D:\android\android-ndk-r9b
- 更新 Path 变量,纳入下列 = 访问 JDK 文件夹、JDK bin 文件夹、NDK、Cygwin bin 文件夹、ANT bin 文件夹,SDK 工具文件夹和 SDK 平台工具文件夹的路径,分别用分号 (;) 隔开。 例如:
D:\cygwin64\bin;C:\Program Files\Java\jdk1.7.0_40\bin;D:\android\adt-bundle-windows-x86_64-20131030\sdk\tools;D:\android\adt-bundle-windows-x86_64-20131030\sdk\platform-tools;%JAVA_HOME%\bin;%ANT_HOME%\bin
注:变量不要以 “\”、“`” 或其他类似的特殊字符结尾。
获取 Haxe 和相应资源库
你可以按照网站 https://github.com/HaxeFoundation/haxe提供的说明从源代码中获取 Haxe,或者从网站 http://haxe.org/download下载预构建的源代码。
以下是下载 Haxe 和相应资源库的步骤:
- 从 http://haxe.org/download中预构建的源代码中下载 HAXE。 选择窗口安装程序。
- 下载完成后,双击安装程序,然后完成安装步骤。
- 安装程序设置了环境变量 HAXEPATH 并附加到系统 PATH 环境变量。 如果没有,请执行必要操作。 例如: 创建已安装路径(比如
E:\HaxeToolkit\haxe\
)的 env HAXEPATH,然后将该路径添加至系统 PATH env。 - 自动安装程序将安装用于部分 Haxe 工具(比如 haxelib和 haxedoc)的 NekoVM。 如果通过源代码创建,请从 http://nekovm.org/download下载并安装 neko。
注:将 NEKO_INSTPATH 设置为 Neko。 例如,E:\neko-2.0.0-win\ 并将 NEKO 路径添加至系统 PATH env。
- 使用以下内容安装所需的资源库(OpenFL 的一部分):
注:haxelib 是 haxe 的一部分,位于 HAXEPATH 中。
- haxelib install openfl
- haxelib install hxcpp
- haxelib install hxlibc
- haxelib install openfl setup android
注: 你可以通过 haxelib 安装,或提供面向 Android SDK,NDK 和 Ant 的本地安装目录来跳过这一步骤,如以下屏幕截图所示。
- 现在资源库已安装,你可以创建流程。 你可以输入以下命令,查看已安装的资源库:
- >haxe
- >haxelib
- >openfl
- >neko
例如,如果输入 haxe,屏幕将显示以下内容:
创建流程
创建示例应用 (OpenFL)
示例 OpenFL 应用可通过以下命令创建:
>haxelib run openfl create DisplayingABitmap
上述命令可创建示例项目。
针对 Android 创建面向 x86 的应用
应使用以下命令针对 Android 创建/清空面向 x86 的 haxe OpenFL 应用:
>haxelib run openfl build android –DHXCPP_X86 –verbose
>haxelib run openfl clean android –DHXCPP_X86 –verbose
配置 Haxe OpenFL for x86 for Android
以下文件可添加面向 Android 的 x86 配置设置:
- haxe/lib/hxlibc/1,0,0/build-tool/gcc-toolchain.xml
- haxe/lib/hxlibc/1,0,0/build-tool/android-toolchain.xml
- haxe/lib/hxtools/1,1,3/src/platforms/AndroidPlatform.hx
- haxe/lib/hxtools/1,1,3/project/HXProject.hx
- openfl-native/1,1,1/project/Build.xml to get -x86 suffix
输入或二进制程序
最终的二进制程序生成至
<projectDir>/Export/android/obj/libApplicationMain.so
二进制程序生成至
<projectDir>\Export\android\bin\libs\x86
已知问题或其他信息
- 安装程序包失败。 例如: haxelib install openfl失败,提示
- “Error Connect/Blocking”
- 解决方法: 如果使用面向网络的代理程序,请确认已完成代理程序设置;例如:haxelib proxy
- openfl build android失败,提示
- ANT/...build.xml , target 16/XX not found
- 解决方法: 在面向 OpenFL 项目的 project.xml 中添加以下内容: <android target-sdk-version="19" /> // where 19 is one of the available SDKs.
资源
https://github.com/HaxeFoundation/haxe
关于作者
Praveen Kundurthy 任职于英特尔® 软件和服务事业部。 他拥有计算机工程硕士学位。 他主要专注于移动技术、Microsoft Windows* 和游戏开发领域。