赞
踩
我们都知道直接用Unity打Apk包的时候会把StreamingAssets目录下的资源拷贝到assets目录下进行打包,资源是不会被压缩的,但是如果我们是导出AS工程出包的话,我们会发现进游戏会明显的卡顿,排查后发现原因就是用AS打包时放在assets目录下bundle文件被压缩了,那AS工程是需要哪里设置,为什么Untiy直接打包就不会有问题呢?
首先我们从Unity不同出包方式编辑器设置不同开始看:
知道了上面的设置,那Unity在打包的时候做了些什么动作呢,我们看下Unity安装目录下面的AndroidPlayer目录
这个目录就是Unity在打包时需要的一些配置文件,我们找到Tools/GradleTemplates下的mainTemplate.gradle文件看下
这就是.gradle配置模板文件,发现aapt编译资源文件的设置,noCompress就是指定哪些类资源不需要压缩,终于我们找到原因也知道大概的流程,我们就可以再AS工程.gradle文件添加同样的aapt配置,这样资源就不会被压缩了。
下面我们用AndroidKiller工具去反编译我们用Unity直接出的包,打开apktool.yml文件
发现我们StreamingAssets目录下的资源文件全部被标记为 doNotCompress 不压缩,这时候我们修改AndroidManifest.xml包名并重新编译出包,如果我们的bundle文件目录结构层次比较多导致路径太长就会报错
解决方法有两种,其实原理还是调用aapt编译资源文件,第一种修改doNotCompress配置
第二种是升级 ShakaApktool,可以不用修改doNotCompress配置
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。