将游戏打包成Android程序
<创建一个apk安装文件>

1 概述

从这个版本开始,使用RPG Maker MV做的游戏可以在那些支持HTML5(包括例如WebGL & 2DCanvas, WebAudio and JavaScript)的浏览器上直接运行。 同时也可以进一步支持那些最近基于HTML5为Android平台开发的浏览器,大家可以在这些浏览器上直接运行由RPG Maker制作的游戏。

不过与其向大家解释如何在浏览器上玩RM游戏,不如直接让我们向大家说明一下如何将你的游戏制作成Android平台的App. 本质上来说,在Android本地运行一个利用HTML5开发的游戏,与在Android平台上用一个支持HTML5的浏览器上跑一个使用RM做的游戏性质是一样的. 我们称这种能够在手机网页上运行的程序为 "Hybrid App",并且从事实上看,这种跨平台的技术确实已经越来越流行了.

在浏览器内,可以处理显示与声音的内置Android引擎(WebView)会将游戏打包成应用。然而,浏览器内置的网络视图引擎(Android WebView)加载HTML5的效率并不高。为此,我们将介绍一个名为Crosswalk Project的技术,这项技术使用在给予它使用在Chrome的浏览器上,并且对HTML5有着高效率的支持。如果想对Crosswalk Project这项技术有更进一步的了解,你可以尝试查看这个网站。 ([Crosswalk Project on Android]).

操作系统

推荐在window8.1或者mac系统 OS X 10.10以上的操作环境下运行。此外,执行程序的计算机将充当主机的功能。

2 准备开发环境

在安卓平台上安装RM制作的游戏需要用apk文件,apk文件是用在Android平台安装的程序的文件。安装程序被压缩在ZIP格式的包里,其中还包含了各种运行时所需要的文件,所以我们要是想把程序安装在安卓平台,就必须将这些文件封装为一个apk安装文件。不过在那之前,确保你能够连接上互联网,因为有些开发工具需要你先下载准备好。

2-1 Python的安装和设置

还记得那个叫Crosswalk Project的玩意吗?对,就是它,它是一个封装脚本,用它封装你的游戏会非常方便。不过先别着急,这里你需要一个名字叫做Python的脚本语言,所以我们得先搭个Python的运行环境。待会这个章节讲解的是如何在windows系统下安装Python环境,如果你是Mac的用户,请移步2-2章节。

2-1-1 下载和安装 Python

你可以在https://www.python.org/downloads/找到python的安装程序。在安装的过程中,没什么特别必要的话,设定不需要做什么改变,并且随便你想装在本地的哪里都可以。

Python h安装到了C盘Python34文件夹.

2-1-2 Path 的设定与检测

将Python的安装路径添加到环境设置里的路径里,这样能使Python命令更容易被调用。
右键点击我的电脑,选择高级系统设置

点击环境变量. 选择[Path]变量,对就是图中Variables下面那个(在你电脑下并不一定是Variables下面那个),然后点击编辑按钮。

修改变量,在最末尾的地方添加[;C:\Python34\](不包括方括号),点确定。

;C:\Python34\

确定你设置路径无误之后,你可以点击开始菜单,搜索cmd,运行,弹出控制台。(如果你用的win8系统,你可以打开c盘的浏览器,并且选择打开cmd)

在控制台里输入python --version并回车。如果你看到你的控制台显示出来的画面和我们下面的图片是一样的话,就表示你python环境已经搭建完成啦。

> python --version

2-2 安装与设置 Oracle JDK

为了使用由Oracle公司提供的Android SDK开发工具和ANT打包工具,你需要安装JDK。而且Mac的操作系统从OS X 10.6版本开始已经不再自带JDK了,如果你没有的话,请安装它 :)

2-2-1 下载并安装 JDK

你可以从这里下载JDK安装包 http://www.oracle.com/technetwork/java/javase/downloads/index.html. 最新的版本是2015年9月发布的Java SE 8u51。

注意,JDK有64位和32位两个版本,分别对应你当前的操作系统[64-bit (Windows x64) and 32-bit (Windows x86)],请务必确保你下载的JDK与你的操作系统相对应。
在顶部选择"Accept License Agreement"(接受许可协议)按钮。

直接运行下载下来的安装文件,不需要做任何选择。

2-2-2 设置并检查JDK的环境变量

现在,我们将要设置一个名为JAVA_HOME的环境变量. 就跟章节2-1-2里为Python设置path的步骤差不多,首先你右键我的电脑,打开高级设置,点击环境变量,然后选择[新建]按钮。
将变量名命名为JAVA_HOME,然后把你安装JDK的文件夹路径拷贝在下面一行。比如我们这里输入的路径就是C:\Program Files\Java\jdk1.8.0_51.

JAVA_HOME
C:\Program Files\Java\jdk1.8.0_51

同样,点击确定之后继续选择PATH路径,在PATH的末尾加入[;%JAVA_HOME%\bin\](不包括方括号) ,点击确定。

;%JAVA_HOME%\bin\

检测环境是否搭建成功和之前检测Python的方法大致一样。
打开CMD,输入java --version,如果画面上显示出你JDK的版本,那么表示你的环境已经搭建成功啦。

> java -version

2-3 安装并设置 Apache Ant

Apache Ant,是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发。 它采用的是内部封装脚本,无论你是Windows操作系统还是OS X系统,都需要安装它。

2-3-1 下载和安装 Ant

你可以从这里下载ANT http://ant.apache.org/bindownload.cgi.
在[Current Release of Ant]板块下面下载[.zip archive:]文件。 最新的版本是2015年8月份发布的1.9.6版。

解压你下载的安装包,在这里我们直接把它解压在C盘。(你也可以选你喜欢的地方解压)

2-3-2 设置并检测环境变量

和2-1-2章里设置Python环境变量的步骤差不多, 右键我的电脑,点击高级设置,点击环境变量。
新建一个名为ANT_HOME的变量,并在下面一行输入你解压ANT文件夹的路径,例如这里我们解压的路径就是C:\apache-ant-1.9.6

ANT_HOME
C:\apache-ant-1.9.6

同样,继续选择PATH变量,编辑,在路径最末尾输入[;%ANT_HOME%\bin\](不包括方括号),点击确定。

;%ANT_HOME%\bin\

用同样的方法确认你是否搭建成功,打开CMD,输入ant -version,回车,出现版本信息则表示你搭建成功。

> ant -version

2-4 安装与设置 Android SDK

首先,SDK是什么?SDK是软件开发工具包(外语首字母缩写:SDK、外语全称:Software Development Kit),正如它的名字一样,一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。 我们所需要的封装工具和测试工具都在这个工具包里。

2-4-1 Downloading & Installing Android SDK

从这里可以下载SDK安装包 http://developer.android.com/sdk/installing/index.html. 在这个SDK里, 你可以找到[ANDROID STUDIO],也就是开发Android程序的工具。 然而我们并不会使用到它,这里我们需要用的是一个叫[STAND-ALONE SDK TOOLS]的工具。

选择[STAND-ALONE SDK TOOLS] 点击并下载[Download the SDK now](下载SDK)。最新版本的SDK是2015年8月发布的r24.3.3版,你可以选择Windows或者OS X版本,点击下载exe安装文件。

运行SDK安装文件。

跳出安装窗口,点击下一步,选择安装的位置,直接装在C盘是一个不错的选择,方便你找到它(其实无所谓 :p)。

2-4-2 下载组件和使用Android SDK管理器

只有在安装程序结束之后,你才能开始下载或安装Android SDK。这里我们安装的是Android SDK Manger,即Android SDK的管理工具,我们可以使用它安装一些其他的组件比如Android平台工具。你可以在开始菜单里找到Android SDK Manger。

你可以通过Android SDK Manager下载连接硬件与主机的USB驱动,如果你不确定你应该下载哪一个,那么在你打开Android SDK Manager之后它会下载那些已经被选中的工具。然而,别忘了一定要选中[Android SDK platform-tools],[Android SDK Build-tools]还有API(最新版本的API是5.1.1(API22)版本)。
以及,同时在[Extras](附加)文件夹选中添加 [Google USB Driver] (谷歌USB驱动,后面会解释)是个不错的选择,他可以让你直接使用USB进行安装。

*也有可能在你刚打开Android SDK Manager的时候,这些工具系统已经默认帮你选取了。

2-4-3 路径的设置与检测

编辑环境变量中的PATH,添加刚才安装的SDK工具的路径。

;C:\android-sdk\
;C:\android-sdk\tools\
;C:\android-sdk\platform-tools\

检测路径设置是否正确,在cmd控制台,输入adb version,并回车。

> adb version

2-5 为Crosswalk Project下载android程序模板

部署Crosswalk Project并不需要去安装,只需要把他的压缩包下载下来并解压在任意的地方,你需要的文件例如浏览器引擎和封装脚本都在压缩包里。
Android程序模板则建议下载较为稳定的版本,(下载地址:https://download.01.org/crosswalk/releases/crosswalk/android/stable/),虽然现在已经更新到了14.43,不过10.39.235.16 的版本比较稳定。
点击文件夹并开始下载 [crosswalk-10.39.235.16.zip]。

在这个教程里,我们直接把压缩包解压倒c盘。

到这一步,封装环境已经部署完毕。

3 使用RPG Maker部署游戏

从这儿开始我们必须使用RPG Maker将必要的游戏数据,资源以及游戏引擎导出到一个文件夹里。在RPG Maker的文件下拉框里,选择[Deployment](部署),弹出部署的窗口,选择Android或者IOS并点击确定,所有你需要的游戏资源都将被部署到你指定的文件夹里。
在这个教程中,我们将其部署在桌面上。

4 开始打包

包装的目的是创建一个apk文件好让你把游戏安装到android平台上。

4-1 创建一个manifest.json文件

让我们记事本来创建一个manifest.json文件(这是一个配置文件),它可以决定你游戏程序里的一些设置。
下面就是一个manifest.json文件的例子,你可以参照并进行修改。

manifest.json
{
  "name": "Sample",
  "xwalk_version": "0.0.1",
  "start_url": "index.html",
  "display": "fullscreen",
  "orientation": "landscape",
  "icons": [
    {
      "src": "icon/icon48.png",
      "sizes": "48x48",
      "type": "image/png",
      "density": "4.0"
    },
    {
      "src": "icon/icon72.png",
      "sizes": "72x72",
      "type": "image/png",
      "density": "4.0"
    },
    {
      "src": "icon/icon96.png",
      "sizes": "96x96",
      "type": "image/png",
      "density": "4.0"
    },
    {
      "src": "icon/icon144.png",
      "sizes": "144x144",
      "type": "image/png",
      "density": "4.0"
    },
    {
      "src": "icon/icon192.png",
      "sizes": "192x192",
      "type": "image/png",
      "density": "4.0"
    },
    {
      "src": "icon/icon512.png",
      "sizes": "512x512",
      "type": "image/png",
      "density": "4.0"
    }
  ]
}

除了名称和版本号,其他一切可以保留原样。
把manifest.json文件保存在你先前部署的“/ www”的文件夹中。
文件里的属性名称和值的作用如下表所示。

属性名称
name 游戏的名字。
xwalk_version 版本号,当你更新的时候记着增加你的版本编号,记着要保持X.X.X version这个格式。
start_url 游戏的路径,一般设置它指向index.html这个文件。
display 可以设置全屏或者窗口化。
orientation 游戏在屏幕中显示的模式,这里设置是横屏显示的(即landscape模式,竖屏为portrait模式)。
icons 图标

引用地址: Manifest网页应用设置: http://w3c.github.io/manifest/

4-2 运行封装脚本

之前在2-5章节下载的android模板里有个make_apk.py的文件,这是一个运行包装处理的脚本,不过你需要在cmd控制台调用它。
打开cmd,在cmd内移动到 "/游戏名称/ www" 的文件夹路径下(就是之前部署游戏的文件夹)。如果你使用浏览器打开游戏文件夹并从文件菜单中打开cmd会更方便。

你可以照着下面这例子使用命令调用封装脚本来打包你的游戏(com.example.sample是这个例子中游戏的项目名称),当然,前提是你的环境部署必须完全正确。

python C:\crosswalk-10.39.235.16\make_apk.py --package=com.example.sample --manifest=manifest.json

封装脚本是用Python写的,所以我们用Python命令能够调用我们指定的脚本。

--安装包
指定包名。如果你有自己的域名,你大可以使用它做为你游戏的名字,就像我们展示的示例一样,顶级域名(即com.example.sample中的com)被放在了最前面,并使用“.”作连接符号。而在末尾的是你游戏的名字(即com.example.sample中的sample)。如果名字一旦确定就很难再做更改,所以在设定前请务必思考清楚。
* example.com只是做临时使用的域,并不能发布在正规的app Play商店,之后我们会解释为什么。

域名范例:
比如说,你的域名是 [example.com] 然后你的游戏名字叫[sample],那你这里就应该署上:
com.example.sample
--配置文件
这个指定文件

如果你运行过程中没有任何报错,那么就会显示[BUILD SUCCESSFUL](构建成功)这个消息。

你可以查看文件夹里新生成的两个新文件,一个是Sample_0.0.1_arm.apk,另一个是Sample_0.0.1_x86.apk。这个文件名包含[arm]的安装包一般是面相ARM处理器用的,这类处理器广泛地用在各种接口上,现在绝大部分的android系统的手机和市面上品牌机中都在使用它。而另外一个文件名包含[x86]的安装包则是用于x86构架的系统,也就是一般用于PC端上。

如果你再次运行打包脚本,那这两个APK文件也将包含在包中,所以一定要提前把他们放置在游戏文件夹以外的地方。

4-3 安装到手机

4-3-1 准备安装到android平台

为了使用USB连接安装程序,你需要先启用你手机上的[Developer Options](开发人员选项)。
要打开[Developer Options]你需要先进入[设置] → [关于本机] → [系统信息] → [高级选项],然后触按[Build Number](系统版本号)7次,然后系统会提示你已经切入开发者模式(cherikens:我不知道写F1的工作人员是用的什么手机以及什么版本的android,不过我想这里指的应该是[设置]→[开发人员选项]→[USB调试模式])。
*[Build number](版本号)所在的目录取决于你手机使用的android版本,所以指不准在哪里。
 比如.) [设置] → [关于版本]

4-3-2 使用USB连接安装

在这里,我们将安装使用USB连接并安装程序。如果你电脑上没有必要的USB驱动程序,你可以使用Android SDK管理器来下载并安装它,之前我们在2-4-3章节里提到的那个。
用USB连接线连接你的手机和电脑,确保这根连接线能够在你手机和电脑之间传输数据,而不是拿来充电。
当你连接成功之后,手机上会跳出一个对话框,提示你是否确认进入USB连接模式。

打开cmd控制台输入adb devices,回车。 如果你正确连接到手机端,那cmd上就会显示硬件的名称。

> adb devices

我们将使用adb命令列表里的安装指令去运行安装包进行安装。输入[adb install -r Sample_0.0.1_arm.apk](不包括方括号),回车。至于那个"-r"命令,它的作用是当你重复安装的时候,只要安装包名是一致的,就可以直接对你的游戏进行更新。
若安装结束之后显示[Success](成功)的字样,则表示你的程序已经成功安装了,接下来你就可以在你的手机上看到游戏的图标,并且可以打开它尽情地玩耍啦。(cherikens:额……一般有手机助手之类的软件的话,你连接手机之后双击apk就行了)

> adb install -r Sample_0.0.1_arm.apk

4-3-3 通过互联网安装

若之前你有安装谷歌驱动,那么使用云服务通过互联网安装程序也是一种选择。你只需要把程序上传到服务器上,在用你的手机下载下来进行安装就行了。
不过要通过这种方式安装的话,你需要先在手机上设定未知资源的安装权限。选择[设置]→[安全]→[未知来源],保持这个选项选中开启。

5 发布到google play

如果你想把游戏发布到google play去,那你得在这儿先注册一个账号。Google Play Developer.

不过很不幸的是,关于google play的事儿我们在这里不好解释太多,但是我们强烈推荐你先去阅读一下google play的各项条款和资源规定,以便为你发布带来指导。
这里我们只说明几点非常重要的事项。(cherikens:那你这个章节还介绍个鬼啦!)

5-1 App签名

为一个app签名在这里指将一个证明放在游戏资源里一起封装到包里,或者说,这是一种证明你有参与制作这款游戏的一种手段。用简单一点的说法就好比在你的艺术品上署名一样。没有签名的app是不能发布到google play的。
签名的方式有很多,这儿我们介绍一种使用 make_apk.py脚本进行签名的方法。

5-1-1 创建密钥库

密钥库会将你的信息加密以防止第三方未经付费就盗用你的程序。通过这种手段,你才能保证这款由你开发的软件是属于你一个人的。
你可以密钥库里管理多个密钥,不过打包到android安装包的时候只要放一个就好了。
此外,你还可以用同一个密钥库为你的其他app进行签名。
我们将会使用到已经安装在你环境中的JDK,使用其中包含的密钥命令来创建密钥库文件,下面是个例子。

keytool -genkey -v -keystore sample.keystore -storepass password -alias release -keypass password -keyalg RSA -validity 10000
-genkey -v
指定创建新密钥文件。
-keystore
指定密钥库文件的名称。
-storepass
指定库的密码。在例子里我们直接用的[password]作为密码,但是等你真的开发完软件进行签名的时候,千万不要用这么简单的密码,以免被他人破解盗用了。
-alias
指定密钥昵称。
-keypass
指定密钥的密码。在例子里我们直接用的[password]作为密码,但是等你真的开发完软件进行签名的时候,千万不要用这么简单的密码,以免被他人破解盗用了。
-keyalg
指定密钥库的算法。(这里默认是RSA)
-validity
指定密钥的有效期限(天数),可以把期限设置的长一些,毕竟以后还需要进行更新。

输入完命令之后回车,接下来会提示你输入密钥信息。

输入你事先想好的信息,比如说名字,单位,国家。这里的国家代码81指的是日本。
如果你系统的设定是在日语的环境下,那当它提示你是否确定是,你就可以选择yes了。(BTW:中国代码是86)
之后一个文件名为“sample.keystore”的密钥库文件就会在你所在的文件夹里被创建出来。

5-1-2 使用密钥库进行封装

4-1的时候我们曾提到过一个封装脚本,这里我们会使用一些附加选项来指定密钥库进行签名。下面是使用附加选项的例子。

python C:\crosswalk-10.39.235.16\make_apk.py --package=com.example.sample --manifest=manifest.json --keystore-path=C:\Users\IEUser\Desktop\sample.keystore --keystore-alias=release --keystore-passcode=password --keystore-alias-passcode=password

在这条命令里分布增加了,keystore-path, keystore-alias, keystore-passcode 以及 keystore-alias-passcode这些个附加选项。

--keystore-path
使用keystore-path可以指定密钥库文件的路径和文件名。
--keystore-alias
生成密钥库的时候同时指定它的别名。
--keystore-passcode
生成密钥库的时候同时指定它的密码。
--keystore-alias-passcode
生成密钥库的密钥,并指定它的密码。

上传你的apk文件到Google Play Developer并进行申请。请确保你仔细阅读并遵守了相关的条款和申请规范。

总结与声明