iPhone Image Resources,ICO vs PNG,app bundle filesize

时间:2010-05-01 17:42:30

标签: iphone performance image compression filesize

我的应用程序包含大约1940个图标,这些图标在整个过程中使用。

他们目前在ICO,提供给我的新图像也是ICO格式。我注意到它们在一个文件中包含每个图标的16x16和32x32表示。

每个文件大小约为4KB(由finder报告,但ls报告它们从~1000字节到5000字节不等)

这些图标中只有极少数只包含32x32表示,因此大小只有700字节左右。

目前,我正在将这些图标与我的应用程序捆绑在一起,并且它们会比我想要的那样夸大应用程序的大小。

总而言之,这些图片总共只有25.5MB左右。 Xcode必须进行某种压缩,因为生成的应用程序包大约为12.4MB。将其进一步压缩为ZIP(就像提交到App Store时那样),最终文件为5.8MB。

我知道自推出iPad以来,App Store下载的最大限制已提升至20MB(我不确定这是否扩展到iPhone应用程序以及iPad应用程序,如果不是限制将是10MB)。

我担心的是会添加新图标(有时每周最多10个图标),并且会随着时间的推移继续对应用包进行充气。

使用我的应用分发这些图标的最佳方式是什么?

我尝试过的事情并没有取得多大成功:

  • 将图标从ICO转换为PNG:
    • 我试过这个,希望pngcrush实用程序可以帮助解决文件大小问题。但看起来它在正常的PNG和压碎的png之间没有太大区别(我相信它只是优化了iPhone的GPU上显示的图像,而不是压缩它的大小)。从ICO到PNG,实际上也增加了图标文件的大小......
  • 压缩图像,然后在首次运行时解压缩它们。
    • 虽然这确实减少了整体图像大小,但我发现解压缩它们,将它们复制到文档文件夹并确保在升级时不会发生重复所需的工作太麻烦了,不值得获益。另外,在原版和3G iPhone上解压缩和复制大约25MB的图像需要太长时间并且会产生糟糕的体验......

我考虑但尚未尝试的事情:

  • 不是在应用程序包中分发图标,而是在线托管它们,并按需下载每个图标(这取决于用户关于实际显示哪些图标以及何时显示的数据)。
    • 问题在于带宽需要花钱,图像下载会带宽密集。但是,我的应用程序目前拥有大约5,500个用户的小用户群(根据Flurry统计数据,我估计大约有1500个用户),而且我当前的托管包有很大的未使用带宽限额。

所以我对如何解决这个棘手的问题持开放态度。

1 个答案:

答案 0 :(得分:2)

我为客户做了一些关于MonoTouch的研究。 MonoTouch的最小文件大小为5.1mb,因为所有的C#东西。它似乎没有影响应用程序商店用户下载基于MonoTouch的应用程序的意愿。

在我的研究中,我没有看到任何证据表明最终用户在做出购买决定时会非常注意应用程序的大小。许多应用程序首先通过iTunes下载到非移动设备,1mb和5mb之间的下载时间差异几乎不可察觉。许多最终用户只是模糊地意识到应用程序甚至有一个大小。

我的建议是根据使用率尝试确定图标的优先级。 Praeto's rule显示在大多数数据中,因此您可能会发现20%的图标获得了80%的使用率。在应用程序包中包含20%最活跃的图标,然后下载其余图标。