我希望将我的应用程序保持在10.0MB以下,以便在蜂窝和Wifi网络环境中轻松下载。根据您的经验,您是否遇到过保持应用程序苗条的好方法?如果是的话请分享。将iPhone应用程序文件大小保持在10.0MB以下有哪些好的指导原则?
答案 0 :(得分:6)
我处理的超过1000万的应用程序是由于资源,通常是图像和音频。正确地确定它们的大小是至关重要的。请注意,iPhone在捆绑设备时会自动为您进行一些压缩,因此Simulator中的内容大小可能与设备上的大小完全不同。
与所有优化练习一样,您希望首先构建一个稳定,理智的系统,然后将优化工作集中在导致最大问题的部分上。我使用du
:
du -ak | sort -rn | head
这将为您提供最重要的事项列表。此信息以kB为单位,但向上舍入到下一个块(Mac上为4k)。但是你只是在寻找什么是大的,而不是确定一切的确切尺寸。
特别注意那些不应该被复制到资源中的东西。有时候会有趣的东西进入,特别是你已经添加到项目中的文档。测试一下,我注意到我自己的项目模板已经将xcconfig文件复制到了包中(必须修复...)
如果你有很多本地化的NIB,那么你可能想要考虑不本地化NIB,而是使用IBOutlet UILabels。如果没有实际的本地化文本,请不要本地化NIB。仅仅因为你对一个NIB进行本地化并不意味着你必须对所有这些进行本地化。
一般来说,iPhone的构建设置在降低尺寸方面已经非常积极,所以如果不研究你正在改变什么,我就不会惹这么多。
请注意Objective-C类,其中包含许多您从未调用过的方法。 Objective-C是动态的,所以你不能像在C中一样对它进行死代码剥离。在编译时无法知道是否可以在运行时使用选择器。因此,如果您的物体中有厨房水槽“以防万一”,您可能想要将它们剥离。但一般来说,与单个音频文件相比,我们并没有谈论很多空间。我只提到它,因为你有一个非常大的对象,你只链接一些类方法或常量等。
答案 1 :(得分:3)
另一个提示:Be careful with your 9.9MB app!
您不希望在经过大量优化后发现您的应用似乎是10.1MB。
答案 2 :(得分:2)
一个提示是使用压缩媒体格式。例如。如果您使用音频文件,您可以考虑使用mp3而不是AIFF或WAV,可能的价格略高于处理开销。一个10mb的可执行文件听起来异常高,所以也许一个大的应用程序会包含很多媒体内容(图像,音频)。
答案 3 :(得分:1)
将一些较大的图像转换为灰度图像,如果它适用于您的应用程序外观。如果你可以制作一些纯粹的灰度,那么节省的费用非常可观。
答案 4 :(得分:0)
构建过程会自动为您压缩PNG文件(使用pngcrush,不要自己动手),所以实际上你需要拥有相当多的资产才能获得超过10MB的大小。我认为担心这是一个过早的优化,你可能不需要担心,直到你发现自己越来越近。
答案 5 :(得分:0)
这篇技巧文章主要适用于iPhone游戏: