5

我想将我的应用程序保持在 10.0MB 以下,以便在蜂窝和 Wifi 网络环境中轻松下载。根据您的经验,您是否遇到过任何让您的应用程序保持苗条的好方法?如果是,请分享。将 iPhone 应用程序文件大小保持在 10.0MB 以下有哪些好的指导方针?

4

6 回答 6

6

我处理过的大多数超过 1000 万的应用程序都是由于资源,通常是图像和音频。正确调整它们的大小至关重要。请注意,iPhone 在捆绑设备时会自动为您进行一些压缩,因此模拟器中的大小可能与设备上的完全不同。

像所有优化练习一样,您希望首先构建一个可靠、健全的系统,然后将优化工作集中在导致最大问题的部分上。我用du这个:

  • 为 Release 中的设备构建
  • 转到构建/发布-iphoneos/.app
  • du -ak | sort -rn | head

这将为您提供最重要的事情的列表。此信息以 kB 为单位,但会向上舍入到下一个块(Mac 上为 4k)。但是你只是在寻找什么是大的,而不是计算出所有东西的确切大小。

特别注意那些不应该被复制到资源中的东西。有时会出现有趣的事情,尤其是您添加到项目中的文档。对此进行测试,我注意到我自己的项目模板一直在将 xcconfig 文件复制到包中(必须解决这个问题......)

如果您有很多本地化的 NIB,那么您可能需要考虑不本地化 NIB,而是使用 IBOutlet UILabel。如果没有实际的本地化文本,请勿本地化 NIB。仅仅因为您本地化一个NIB 并不意味着您必须本地化所有NIB。

一般来说,iPhone 的构建设置在缩小尺寸方面已经很积极了,所以如果不研究你正在改变的内容,我不会搞砸很多。

请注意具有许多您从未调用过的方法的 Objective-C 类。Objective-C 是动态的,因此您不能像在 C 中那样对其进行死代码剥离。在编译时无法知道是否可以在运行时使用选择器。因此,如果您的物品中装有厨房水槽,“以防万一”,您可能希望将其剥离。但一般来说,与单个音频文件相比,我们在这里谈论的不是很多空间。我只在极少数情况下提到它,即你有一个非常大的对象,你只为某些类方法或常量等链接。

于 2009-05-28T13:51:34.930 回答
3

另一个提示:小心你的 9.9MB 应用程序

您不想在经过大量优化后发现您的应用看起来只有 10.1MB。

于 2009-05-28T14:09:15.003 回答
2

一个技巧是使用压缩媒体格式。例如,如果您正在使用音频文件,您可以考虑使用 mp3 而不是 AIFF 或 WAV,但代价可能是处理开销稍高。一个 10mb 的可执行文件听起来异常高,所以一个大的应用程序可能会包含很多媒体内容(图像、音频)。

于 2009-05-28T11:42:26.547 回答
1

如果它适合您的应用程序的外观,则将一些较大的图像转换为灰度。如果你可以制作一些纯灰度,那么节省的费用是相当可观的。

于 2009-09-24T20:14:49.347 回答
0

构建过程会自动为您压缩 PNG 文件(使用 pngcrush,不要自己这样做),因此实际上您必须拥有相当多的资产才能获得超过 10MB 的大小。我认为担心这是一个过早的优化,你可能不需要担心,直到你发现自己稍后接近。

于 2009-05-28T15:06:03.907 回答
0

此提示将主要适用于 iPhone 游戏:

  • 对于没有透明度的图像,请使用 JPG 而不是 PNG。
  • 将您的声音保存在 mp3 中,在第一次加载应用程序时将它们渲染为 WAV,并将它们保存到应用程序 Documents 目录。
于 2009-09-24T21:07:17.870 回答