unity编安卓包相关总结

发表于2018-08-24
评论5 5k浏览

本文主要介绍编安卓包的内容分析、过程、运行效果、注意事项、拓展相关,希望加深对出包流程、工程特殊目录、更新等相关的理解。

编安卓包前准备:

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展示效果如下:

tx手游助手效果:

 

注意事项:

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包我们删不了导致会存在两份资源。

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引

标签: