ActionScript
TypeScript
JavaScript

打包工具

发布时间:2016-12-29

使用 LayaAir IDE 创建的项目,不仅可以生成 h5 页面在网站上运行,也可以打包成 app 在移动端安装运行。

从LayaAir IDE的1.0.0版本之后就提供了打包成app的编辑器内置工具。

目前只支持打包Andorid版本的app,因为ios系统只能够通过Apple的XCode来打包,无法使用其他第三方的工具进行打包。可以使用我们的工具构建成XCode项目工程,详情请参考:构建项目

点击菜单栏的"工具->打包app" 可以打开 打包app 窗口,对当前项目进行打包操作。在使用打包app 工具之前,需要先配置一下打包环境。环境配置完成后,在打包app 弹出窗口里执行打包操作。

环境配置

需要已经安装了1.7(含)以上的jdk,如果没有安装,可以到 这里下载。

点击菜单栏的 工具->打包app ,如果弹出”环境安装向导“窗口,则说明你的IDE 打包app 的环境还未配置完成。可按照环境安装向导配置打包app 环境。

1.png

1.打包app 和构建app 需要官方提供的运行环境,点击“跳转下载”按钮,进行下载。

2.下载完成后解压缩,将里边的文件覆盖到 IDE 的打包构建工具包下。可通过点击“打开目录”按钮打开覆盖目录。

覆盖目录: resources\app\out\vs\layaEditor\libs\RuntimePackTools\

3.覆盖后需要重启一下 IDE,此时打包app的环境已经配置完成啦。

使用方法

点击菜单栏的工具->打包app(测试版) 会弹出打包app弹窗,如下图:

open.gif

具体参数的含义见下面的说明。

Android Apk 打包单机版

点击菜单栏的工具->打包app 弹出打包app弹窗。

standalone.gif

单机版app:

如果选中,就是要打包成单机版,否则就是打包在线版。

单机版通常不需要联网,没有对应的url。所以不用提供url,但是必须提供游戏 资源。否则打包之后无法运行。

在线版本则必须有url路径才可以,在线版本的资源可加可不加,这个自行决定。

注意:即使在单机版里面依然可以通过XMLHttpRequest或者websocket进行网络操作,只是不支持动态更新资源

Android Apk 打包

点击菜单栏的工具->打包app 弹出打包app弹窗。

blob.png

界面参数的意义:

名称:

就是app的名称,安装以后显示在app图标下面的名称。
例如:
app.png

猎刃2 就是这里要填的名称。(注意:目前只能修改中文系统下的名称

包名:

android应用的包名,这个正常情况下是不可见的。一般采用反域名命名规则(有利于分辨和避免与系统中已经有的app冲突)。

例如 : com.layabox.runtime.demo
包名必须是 xxx.yyy.zzz 的格式,至少要有两级,即xxx.yyy 。否则打包会失败。

游戏url:

由于打包的应用是一个在线项目,就需要提供一个启动url,指向一个html页面,就是应用的入口。如果是通过LayaAir生成的项目,打开二维码里边会有一个index.html地址,在测试的时候,为了方便可以直接使用这个地址。但是当打成anroid应用的时候,就必须有一个真正的webserver的地址。例如:

局域网地址:

 http://10.10.20.19:8888/index.html

实际地址(webserver地址):

 http://layaair.ldc.layabox.com/layaplayer/index.html?mid=1000

输出目录:

就是打包结果,如果没有错误的话,这个目录下面就会生成重新打包好的文件,现在名字固定为 game.apk。 实际使用的时候可以改名, 改文件名不会影响app安装后显示的名称。
目前的问题:

如果打包过程中出现问题而中断,则会在这个目录下残留一些临时目录,遇到这种情况,只要直接把这些目录删掉即可。

ICON:

app的图标文件,打包工具会根据这个文件来生成android需要的各个大小的图标。因此,这个图标最好符合android的最大图标的大小, 例如 144x144,如果原始图片太小,生成的图标效果就会变差。图标文件的格式必须是jpg或者png,如果有圆角的话,必须是png格式且圆角部分透明。

keystore,keystore密码,alias,alias密码:

这些都是keystore相关的参数。keystore用来给生成的apk进行签名。如果不填,打包工具会使用自带的keystore文件来签名。 不过为了安全,建议使用自己的keystore文件。如果还没有keystore文件,可以用java自带的keytool来生成一个,具体生成方法可以 查找keytool帮助或者百度一下。
为什么要有keystore密码和alias密码两个密码呢? 如果粗略解释下,可以认为keystore是一个 集合,可以包含很多证书,他里面的每个证书都有一个别名,就是alias。如果要取出某个证书来使用的话,首先要进入keystore,于是就需要 keystore的密码,然后要取出里面的某个alias的证书,又要这个alias的密码。

配置脚本:

详情请参考:其他设置

启动LOGO:

启动页面中的logo可以替换成自己的图片。

资源路径:

资源就是实际的游戏资源,例如脚本、图片、声音等。对于在线游戏,只要有游戏的url就能正常运行,但是把资源直接打进包中的话, 可以避免网络下载,加快资源载入速度。如果是单机游戏,由于没有提供游戏url,就必须给资源目录,把所需的资源全部打包进apk。 注意打包进apk的资源依然可以通过我们的dcc工具(资源缓存管理)进行更新。

打包:

填好各参数后点击 打包 按钮执行打包工作,打包时间较长,因此会有一个进度提示,如果没有任何错误,进度到达100% 以后,在输出目录就会生成最后的打包结果。打包完成后,在输出目录下会生成一个game.apk文件。

注意:

打包资源的缺点是会增加包的大小。

打包资源的在线游戏,必须在server端打dcc了,否则就会失去打包的优势,依然会下载所有的资源。 如何打dcc,参考<LayaDcc工具>。