Unity打包APK大小测试

测试环境:unity2017.4

 

一.空场景(默认设置): (21.1MB)

1.1 修改Api Compatibility Level : .NET 2.0    (22MB)

推荐使用.NET 2.0 Subset 表示你只会使用到部分的.NET 2.0Subset,不需要Unity 全部.NETApi包含进去。

1.2 修改Device Filter:ARMv7    (11.4MB) 推荐使用

Device Filter:选择应用程序在指定CPU上运行

      当前Unity的默认配置FAT(ARMv7+x86),代表支持ARM架构和x86架构的CPU,如   果选择ARMv7,在当前的版本下apk包体可以减少8M。

      那么问题来了,x86架构的用户到底有多少?

      数据来自于:http://hwstats.unity3d.com/mobile/cpu.html

      可以看到在2016-09月的时候,x86的用户只有1.3%。对于绝大多数用户来说,Device   Filter选择ARMv7可以减少.apk包体的大小,同时又不      会影响绝大多数用户的    使用。

      如何妥善的满足两种需求?

      虽然只有1.3%的用户,而且大多集中在ZenPhone,ZenPad用户身上,然后用户就是上   帝啊,我们不能放弃他们。

      可以选择发布不同的.apk版本,经由平台判断用户使用的机型,进而下载对应的.apk版本。举个栗子,Google Play对于不同版本的apk支持细      则:https://developer.android.com/google/play/publishing/multiple-apks.html?hl=es

 

 

二.  Vuforia AR场景(空):

Api Compatibility Level :.NET 2.0 Subset 

Device Filter:ARMv7   (26MB)

2.1 删除 Assets/Editor/Vuforia/ImageTargetTextures/VuforiaMars_Images/下图片  (25.9MB)

三 . 实际场景压缩APK包大小优化:

3.1 根据查看Editor.log查看打包内容,其中有些场景中未用到的资源可以删除

查看方法:点击Console窗口选项-->Open Editor Log-->查看Bulid Roport

内容如下所示:(注:只有至少打包一次之后才会有这些信息)

 

Unity打包APK大小测试_第1张图片

3.2 图集打包

游戏中最占用内存的就是图片,而对图片处理的最常用的方式就是SpritePacker也就是图集

打包(我们项目使用的是UGUI),具体使用方法参考:

http://blog.csdn.net/liang_704959721/article/details/77986038

3.3 对图片进行处理

Inspector面板中可以对图片的进行一些压缩,在不影响项目质量的情况下可以使用:

Unity打包APK大小测试_第2张图片

安卓的一般是设置图片压缩为ETC(不带Alpha)、ETC2(带Alpha)

IOS的采用的是:PVRTC图片格式

Format各种格式数据可参考官方文档:https://docs.unity3d.com/ScriptReference/TextureFormat.html

3.4 剔除不必要的资源

3.5 优化,压缩网格和动画,减小文件大小

3.6 使用AssetBundle进行资源的打包,AssetBundle是Unity引擎提供的—种用于存储资源的文件格式 ,它 可以存储任意一种Unity引擎能够识别的资源 ,例如模型 、纹理 、音频 、动画片段甚至整个场景等 。具体使用方法请参考:http://blog.csdn.net/u011484013/article/details/51253920

3.7 音效加载的优化

针对安卓平台,如果一开始就将音效给加载进去的话,那么上图中的内存占用率就会很大:

导致最为明显的变化就是,场景加载的时候卡顿严重,影响游戏的体验

优化方案:对于背景音乐(高频音乐)设置加载模式为streaming模式,使用缓存加载,播放完毕后会自动从缓存中卸载,从而提高内存占用率,如果你发现的的音效很占内存那么试试这个操作肯定不错。

Unity打包APK大小测试_第3张图片

 

 

你可能感兴趣的:(Unity3D合集)