【问题标题】:Unity android apk is too largeunity android apk 太大
【发布时间】:2019-11-08 17:51:03
【问题描述】:

在过去的几个月里,我一直在开发一个 2D 平台游戏,我很快希望将其发布到 Google Play 商店

在过去的 2 天里,经过一些更改,apk 文件大小从 70MB 左右增加到 130MB 以上。我一直在考虑我对应用程序所做的最新更改,这可能导致了这个问题:我在项目中导入了 TextMeshPro 并在一些项目中使用了它游戏中的UI页面添加了一些小资源创建了一个新场景

对我来说另一件看起来不对劲的事情是,整个资产文件夹的大小略小于 60MB。我手动添加的所有资产都在那里。

昨天我花了几个小时搜索并试图无效地解决这个问题。例如,通过查看编辑器日志,文件确实很大:出于某种原因,有几个 15Mb .png 文件(当它们只有大约 300KB)。我降低了它们的分辨率并压缩了它们,然后在编辑器日志中再次查看它们确实减小了它们的大小,而 apk 仍然没有太大变化(可能在 200KB 左右,因为资产文件是 300KB之前,之后只有 100KB)。

总而言之,我完全不知道为什么 apk 大小这么大,无论如何,我真的必须把它恢复到 60-70MB 才能上传到 google play 商店(小于 100MB)。

非常感谢任何信息或帮助,谢谢!

编辑:这是构建报告的一个很好的部分:

Unloading 309 Unused Serialized files (Serialized files now loaded: 0)
System memory in use before: 92.7 MB.
System memory in use after: 90.0 MB.

Unloading 337 unused Assets to reduce memory usage. Loaded Objects now: 2153.
Total: 384.610600 ms (FindLiveObjects: 0.507000 ms CreateObjectMapping: 0.051800 ms MarkObjects: 382.389300 ms  DeleteObjects: 1.661500 ms)

DisplayProgressNotification: Build Successful
Unloading 1 Unused Serialized files (Serialized files now loaded: 0)
Loaded scene 'Temp/__Backupscenes/0.backup'
    Deserialize:            3.940 ms
    Integration:            333.324 ms
    Integration of assets:  0.050 ms
    Thread Wait Time:       14.688 ms
    Total Operation Time:   352.001 ms
System memory in use before: 196.9 MB.
System memory in use after: 197.0 MB.

Build Report
Uncompressed usage by category (Percentages based on user generated assets only):
Textures               952.7 mb  98.1% 
Meshes                 0.0 kb    0.0% 
Animations             0.0 kb    0.0% 
Sounds                 0.0 kb    0.0% 
Shaders                685.8 kb  0.1% 
Other Assets           2.0 mb    0.2% 
Levels                 929.5 kb  0.1% 
Scripts                930.6 kb  0.1% 
Included DLLs          13.3 mb   1.4% 
File headers           339.3 kb  0.0% 
Total User Assets      970.8 mb  100.0% 
Complete build size    2.0 gb
Used Assets and files from the Resources folder, sorted by uncompressed size:
 13.4 mb     0.6% Assets/Graphics/Level 11/ground11.png
 13.4 mb     0.6% Assets/Graphics/Level 3/Lava2.png
 13.0 mb     0.6% Assets/Graphics/Level 12/Trampoline4.png
 12.9 mb     0.6% Assets/Graphics/Level 4/Lava6.png
 12.5 mb     0.6% Assets/Graphics/Level 4/Lava1.png
 12.3 mb     0.6% Assets/Graphics/Level 12/Ground15.png
 11.4 mb     0.5% Assets/Graphics/Backgrounds/Lev19.png
 11.0 mb     0.5% Assets/Graphics/Level 3/Lava5.png
 10.9 mb     0.5% Assets/Graphics/Level 4/Ground13.png
 10.7 mb     0.5% Assets/Graphics/Level 4/Ground12.png
 10.7 mb     0.5% Assets/Graphics/Level 2/Ground1.png
 10.7 mb     0.5% Assets/Graphics/Level 4/Ground6.png
 10.7 mb     0.5% Assets/Graphics/Level 4/Ground8.png

等等

【问题讨论】:

  • 什么是“编辑日志”?
  • @0xBFE1A8 你可以看到here。你可以用它做很多事情,我以前看过 Build Report
  • 请发布您的日志。
  • @0xBFE1A8 你想要日志的哪一部分?它有 2MB 的纯文本;)
  • This 部分。

标签: c# android unity3d


【解决方案1】:

在 Unity 3d 上减少构建大小的一些技巧

  1. 仅当项目不依赖于 NetCore.App 之类的东西时,才将项目定位到 NetStandard 2.0 而不是 .Net 4.x

Unity 支持两个 .NET API 兼容级别。:.NET 4.x 和 .NET Standard 2.0。 .NET Standard 2.0 将您限制为 .NET API 的较小子集,这有助于减小大小。

  1. 压缩网格和导入的动画剪辑,以便它们在您的游戏文件中占用更少的空间。

要启用 Mesh 压缩,请选择 Mesh,然后在 Inspector 窗口中将 Mesh Compression 设置为 Low、Medium 或 High。

  1. 压缩纹理

要在不修改实际源内容的情况下执行此操作,请在项目视图中选择纹理,然后在检查器窗口中减小最大尺寸。要查看它在游戏中的外观,请放大使用纹理的游戏对象,然后调整最大尺寸,直到它在场景视图中开始看起来更糟

  1. 仅针对 arm v7 架构进行实验性构建,而不是 x86 + armv7,因为 x86 上的设备较少

【讨论】:

  • 谢谢你,但我该怎么做你说的第一件事?此外,通过压缩资产,它并没有太大变化,因为它们只有 60MB,而且由于我不知道的原因,apk 文件大小超过 130MB。有什么能以这种方式增加它?
猜你喜欢
  • 2019-09-26
  • 2014-01-16
  • 1970-01-01
  • 1970-01-01
  • 2015-12-06
  • 2013-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多