程序丨Unity编安卓包,需要注意哪些要点?
本文主要介绍编安卓包的内容分析、过程、运行效果、注意事项、拓展相关,希望加深对出包流程、工程特殊目录、更新等相关的理解。
编安卓包前准备
1.unity5.6.2f1,安卓sdk,javaJDK。
2.在build settings面板,选中Android,如果没有安装Android模块,需要先下载安装。具体如下所示:
3.安装完毕之后才能开始build。如何编包具体不在本文描述,重点是分析编包的过程和相关内容。
编包分析
1.工程目录简介
这里主要说明一下Resource、StreamingAssets这两个目录。
Resource下的资源不管用不用都会打到包里去,会做压缩处理。被Resource里的内容引用到的外面内容也会被打包。
StreamingAssets下的资源也会打到包里但它不会压缩,该目录为只读,各个平台Application.streamingAssetsPath路径也不一样。
测试工程目录如下:
2.一般会把一些ab包放到StreamingAssets下,编包时会一起编进去。这里需要注意的是,为了编包不产生多余文件,我们需要把已经打包ab包的原始文件移出去,比如上文uia目录可整体移出,然后在编包,编完在移回来。当然整个过程完全可以脚本执行,感兴趣的去研究下,这里不做阐述。
下面对照看看打ab包前后编的apk包解压内容,具体如下:
3.运行效果
Unity编辑器里效果如下:
Hongmi note4X展示效果如下:
手游助手效果:
注意事项
1.注意打ab包设置正确的BuildTarget;
2.编包前注意移出已打ab的原始资源;
3.注意安卓的路径,起初被这个路径折腾了。还是多动手测试一下便知,我用手机最后测试使用成功的是Application.dataPath + "!assets"。
以下为网上资料说可用的各种路径,请勿尽信,测试均失败:
Application.streamingAssetsPath;
Application.dataPath + "!/assets";
"jar:file://" + Application.dataPath + "!/assets";
附上Android各路径:
Application.dataPath:
/data/app/package name-1/base.apk
Application.streamingAssetsPath:
jar:file:///data/app/package name-1/base.apk!/assets
Application.temporaryCachePath:
/storage/emulated/0/Android/data/package name/cache
Application.persistentDataPath:
/storage/emulated/0/Android/data/package name/files
拓展
假如这是个外网包已发出,后面需求改了aUI.prefab资源等(未修改代码相关逻辑),我需要重新编一个ui_aui的ab包供外网去更新。要如何处理?
一些思路:
首先你不可能重新编个包吧,这样严重不符合规范。轮到CDN上场了,我们可以把更新的ab包放到CDN路径,WWW加载进来。由于streamingAssetsPath只读,我们可将更新的ab包存到persistentDataPath,后续资源版本未有更新前都可继续使用,但老的ab包我们删不了导致会存在两份资源。
↓↓↓点击阅读原文,了解更多。