前提要求:
第一点,必须要targetVersion》=30(android studio>4.2以及build gralde>6.7.1此篇不讨论)
第二点,必须使用bundle的方式上传
第三点,本文的方式是原生apk+U3D资源做的融合包
正文部分:
本文采用的是在应用安装时就包含资源的模式,即install_time模式。本本项目apk大小40M左右,U3D资源文件大约210M。
第一步:创建U3D的资源文件夹
在project(build.gradle项目级)的目录下创建install-time-asset_pack的文化夹,并在此文件夹下依次创建src、main、assets文件夹
第二步:导出U3D资源包
将U3D打包出的普通的资源包导出,目录如下图所示,
其中
1、需要将lib文件夹中的jar等文件放置原生项目lib文件夹中
2、需要将jniLibs中的so文件放置在原生项目的jniLibs文件夹中
3、将U3D中的androidmanifest文件中的文件合并到原生项目的androidmanifest文件中,尤其是unity.build-id的数值
4、将U3D中build.gradle文件下的内容同步到原生项目的gradle配置中
第三步:放置资源包
将U3D资源包中assets/bin/data文件夹中文件全部拷贝至第一步中的assets文件夹中
第四步:创建U3D资源的build.gradle文件
在install-time-asset_pack文件夹根目录下创建build.gradle文件,并添加以下代码:
apply plugin: 'com.android.asset-pack'
assetPack {
// packName 的名称可更改,但是要和配置对应上
packName = "install_time_asset_pack"
dynamicDelivery {
//此处设备类型为应用安装时使用
deliveryType = "install-time"
}
}
第五步:修改project中根目录的setting.gradle文件中,添加如下代码引用:
include ':install_time_asset_pack'
第六步:修app级的build.gradle代码修改
1、在android根目录下添加如下代码:
android {
assetPacks = [":install_time_asset_pack"]
}
2、 在android根目录下添加如下代码:
针对不同的分辨率和CPU进行分包
android { splits { abi { enable true reset() include 'arm64-v8a', 'armeabi-v7a' universalApk true } } bundle { density { enableSplit true } abi { enableSplit true } language { enableSplit false } } }
3、 在dependencies根目录下添加如下代码:
dependencies { implementation 'com.google.android.play:core:1.10.0' }
第七步:打包aab文件
第八步:本地aab文件转换为apk本地测试
第九步:上传google play进行内部测试
第十步:内部测试完毕,正式发布。
未完待遇