Android apk发布
从LayaAir3.2版本开始, LayaAir Native支持也自动打包,新手也可以一键发布apk,非常易用。
对于资深的开发者, 我们也保留了构建为原生包工程的方案,让开发者更自由的接入第三方的SDK以及扩展。
一、安装构建发布的环境
在构建发布Android之前,我们需要先添加Android的发布环境模块,如图1-1所示,点击文件
菜单栏下的添加模块
选项,
(图1-1)
如果我们不先添加发布环境,当点击构建Android时,也会弹出安装模块的提示,如图1-2所示。
(图1-2)
如果弹出提示,点击确定,可以自动跳转到安装界面,点击安装,会自动下载并安装好安卓构建所需要的环境。
由于构建工具需的库文件比较大,因此并没有直接包含在LayaAirIDE中,在第一次使用这个工具的时候,会先下载相应的支持模块。
文件较大,下载时需要耐心等待。
二、构建发布
在文件
菜单中,打开“构建发布
”选项,选择Android
平台标签,如图2-1所示,
(图2-1)
首先,我们先了解各个常用配置的作用。
2.1 应用ID
应用的包名,这个正常情况下是不可见的。一般采用反域名命名规则(有利于分辨和避免与系统中已经有的APP冲突)。
例如 : com.layabox.runtime.demo
包名必须是 xxx.yyy.zzz 的格式,至少要有两级,即xxx.yyy 。否则打包会失败。
2.2 构建版本号
Native工程的版本,开发者自己定义识别用的。
2.3 打包资源
是否把为当前平台导出的资源(resource目录)打包到native项目中。打包的资源会放到特定的目录中,以供后续生成不同平台的App。
如果希望提供单机版,则必须选择打包资源,即勾选“打包资源”,并且保留“资源服务器URL”为空。把资源直接打进App包中,可以避免网络下载,加快资源载入速度。
把资源打包的缺点是会增加包体的大小。
如果想发布勾选“打包资源”的在线游戏,必须在server端打dcc,否则就会失去打包的优势。
2.4 混淆资源
如果勾选,在打包资源的时候,会随机混淆资源,主要作用是避免在上架的时候被平台扫描到某些敏感函数。
2.5 资源服务器URL
填写服务器地址即可,注意要在地址后加上index.js。
例如:http://192.168.31.109:8000/index.js
2.6 热更新(DCC)
启用DCC后,可以打包资源,也可以不打包。
参考DCC文档。
2.7 屏幕方向
参考横竖屏设置。
2.8 应用图标
可以设置APP的图标。
2.9 密钥库
分为调试版本和发行版本,用于为应用程序生成数字签名。签名证明了应用的作者身份,并确保应用内容没有被篡改。
2.10 目标架构(CPU)
ARMv7: ARM处理器的32位版本。覆盖大部分旧设备和一些中低端设备。
ARM64: 也称为AArch64或ARMv8,是ARM处理器的64位版本。覆盖大多数现代中高端设备。
x86: 基于Intel的32位处理器架构。主要用于一些较旧的Intel处理器Android设备,在Android设备中使用相对较少。
x86-64: 也称为x64或AMD64,是Intel处理器的64位版本。用于较新的Intel处理器Android设备,在Android设备中使用较少。
2.11 应用程序格式
可以选择APK或AAB格式。
2.12 最小API级别
指定应用运行所需的最低Android版本(API级别)。设备的系统版本必须等于或高于该值,才能安装和运行该应用。
2.13 目标API级别
指定应用设计和测试的目标Android版本(API级别)。它告诉系统应用已针对该版本进行了优化,但仍然可以在更高版本的系统上运行。
2.14 渲染模式
有OpenGL和WebGL两种渲染模式,一般默认选择OpenGL即可。
2.15 导出项目
勾选后,构建发布的项目将不会自动打包成apk包,而是发布为原生包Android Studio工程。
2.16 纹理选项
压缩纹理
:一般需要勾选“允许使用压缩纹理格式”,如果不勾选,则忽略所有图片对于压缩格式的设置。
纹理源文件
:可以不勾选“始终包含纹理源文件”,如果勾选,则即使图片使用了压缩格式,仍然把源文件(png/jpg)打包。目的是遇到不支持压缩格式的系统时,fallback到源文件。
三、直接打包为apk
默认不勾选导出项目
,如图3-1所示,此时会直接生成apk安装包,如果勾选,则会导出Android Studio工程。所以这里重点说明一下。
(图3-1)
3.1 单机包
当资源选项
的资源服器URL
为空时,如图3-1所示,会直接打出一个单机版的apk安装包,如图3-2所示,
(图3-2)
此时,直接将apk包安装到手机即可。但是,这样的纯单机版应用无法实现资源动态更新,当资源发生变化时,必须更新APP。
3.2 联网包
如果是联网包,则需要填写资源服务器URL
,填写后可以不勾选打包资源
。发布后需要将resource目录放在服务器中,地址就是发布时填写的url,这样发布的应用就会从服务器加载资源。
如果填写了资源服务器URL
,并且勾选了打包资源
,那么最终发布的就是一个带资源的联网包。apk中本身包含了资源,但是相比于纯单机的应用,它可以通过DCC更新资源。
四、构建Android Studio工程
构建Android Studio工程,对于资深开发者来说,更加灵活和可扩展。此时,需要准备好Android studio,Android系统版本需要≥4.3。
4.1 构建好的项目工程的使用
构建发布时,如果勾选导出项目
,则会导出构建好的 Android studio工程,可以用对应的开发工具打开进行二次开发和打包等操作。
Android Studio工程的门槛较高。如果是新手,不具备相关知识,请先去学习了解相关Android studio的基础开发知识。
这里提供了一篇简单的参考资料:
4.2 手动切换单机版和网络版
构建完成之后,可以通过直接在项目中修改代码来切换单机版和网络版。
在构建的项目中打开MainActivity.java,搜索 mPlugin.game_plugin_set_option("localize","false");
单机版需要设置为"true",如mPlugin.game_plugin_set_option("localize","true");
如果要设置为网络版,就要修改为:mPlugin.game_plugin_set_option("localize","false");
并且设置正确的地址:mPlugin.game_plugin_set_option("gameUrl", "http://你的地址/index.js");
反之亦然。
一旦修改了url地址,原来打包的资源就都失效了。这时候,需要手动删除 cache目录下内容,重新用layadcc来生成打包资源,参见LayaDCC工具。
4.3 资源
通过IDE构建好工程,
- 如果选择的是单机版(打包资源)版本,会把所有的h5项目的资源(包括:脚本、图片、html、声音等)全部打包到了这个目录下:
release\android\android_project\app\src\main\assets\cache
- 如果是联网且不打包资源的版本,资源则使用发布目录下的resource目录(release\resource)。
五、其他注意问题
Android Studio构建完成后,需要根据自己的环境修改android sdk的版本号,需要修改的文件是 app/build.gradle。