关于unity3D、谷歌上架obb分包、以及上传需要64位架构apk的问题解决方案

谷歌分包:

问题:一般带unity3D的应用都是大于100M的,所以不得已谷歌上架需要分包,即拆分为apk+obb的方式上传

当前集成方式:3D只是作为APP的一个功能点,unity3D资源文件是内嵌在APP中的asserts文件里的

解决问题过程:

先测试unit3D软件自动分包测试(第一种):测试unity3D直接打包成apk+obb,复制apk和obb到手机,安装后把obb放到合适的文件夹(如果没有包名文件夹需要自己创建),经测试可以完成场景的调用,OK!

后测试unity3D打成AS过程项目的方式测试(第二种):直接打成AS项目过程,包含完整的assets中的bin文件夹中的Data文件夹(我的根目录文件是550个文件及文件夹),起初的想法是直接把bin文件或者assets文件直接压缩成obb文件(这种一般比unity3D 打出来的包要打一半,可能是压缩软件的问题),经测试均无效!但是直接把bin文件嵌到APP中的assets下,直接运动过程是可以用的,不分包(当然还有其他的一些配置,这里不是重点就不详细描述了

补充:由以上2中方式做出的测试结果,我继续尝试将第一张的apk和obb文件解压,一睹成功的奥妙是什么?

  我们先分析一下第一种下的文件:  

1、发现apk包含:如下图

2、androidmanifest.xml中有一个unity.build-id,这个value有大用途(下面会阐述),先在这里记录一下

<meta-data
    android:name="unity.build-id"
    android:value="775ba065-784d-428e-a8c2-95b90ed12249" />

3、发现assets——bin——Data文件夹内容如下:文件及文件夹合计数量9个

4、发现obb包含:bin文件夹+一个0K文件,这个ok文件就关键了,发现和androidmanifest中的unity.build.id是同样的值

bin——Data下的文件总量是541个

5、  再分析一下第二种直接过程运行可以运行,但是分包不可以的文件录目录:

重点:assets——bin——Data下的文件总量是550,也就是说完成工程的中的Data文件经过apk和obb分包的方式被分成了2部分,apk中的9个文件+obb中的541个文件

初步诊断结果:分包成功的重要因素有2个:1个是Data文件要分散到apk和obb中,另外一个是androidmanifest重的unity.build.id和obb这的0kb文件名要一样

 

unity3D打包成AS过程和obb文件(最终解决方案):

选择用gradle来构建工程和obb,在unity3D打包的时几个点要注意:

  a、Build System选择gradle

  b、使用签名文件:要用keyStore,不可讲jks直接重命名(jks转为p12再转为keystore),此处的keystore要和APP打包用的签名是一样的

 c、设置vercode和version为AS项目中的参数一样值

 d、勾选arm64(打包后生成arm64-v8a文件夹)、armeabi(打包后生成为armeabi-v7a),后面为了减少谷歌上传必须64位的问题

最后查看一下生成的文件目录:包含AS工厂目录+一个obb文件

至此unity3D打包部分已经结束,下面开始和原始android项目融合集成:

1、复制unity3D打包出来的assets中的bin文件夹复制到android项目中的assets中

2、复制so文件到JNILibs中

3、复制unity3D中androidmanifest中的unity.build.id中的值到android项目中的unity.build.id的值

4、修改build.gradle,增加v8a和v7a:

ndk {
    abiFilters 'arm64-v8a',"armeabi-v7a"
}

splits {
    abi {
        enable true
        reset()
        include 'arm64-v8a',"armeabi-v7a"
        universalApk true
    }
}

到此融合结束,下面开始测试:

复制apk和重命名后的obb文件到手机内部进行测试(放到合适的文件夹不是重点,不知者自行百度),结果肯定是柳暗花明啦。

obb拷贝到Android设备的“/android/obb/com. XX.XX.XX”路径下.

饿了,准备用膳!

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值