代码之家  ›  专栏  ›  技术社区  ›  Jasarien

iPhone图像资源、ICO与PNG、应用程序包文件大小

  •  1
  • Jasarien  · 技术社区  · 16 年前

    我的应用程序有一个大约1940个图标的集合,在整个过程中使用。

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

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

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

    目前,我正在将这些图标与我的应用程序捆绑在一起,它们使应用程序的大小比我想要的要大一点。

    总的来说,这些图像总共只有25.5兆字节。Xcode必须进行某种压缩,因为生成的应用程序包大约为12.4MB。将其进一步压缩到一个zip中(就像提交到应用商店时一样),最终得到5.8MB的文件。

    我知道自iPad推出以来,无线应用商店下载的最大限制已经提高到了20MB(但我不确定这是否扩展到了iPhone应用和iPad应用,如果不是,限制将是10MB)。

    我担心新图标会被添加(有时每周最多10个图标),并且会随着时间的推移不断膨胀应用程序包。

    用我的应用程序分发这些图标的最佳方法是什么?

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

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

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

    • 而不是在应用程序包中分发图标,而是将其在线托管,并根据需要下载每个图标(具体取决于用户的数据,以及实际显示图标的时间)。
      • 这方面的问题是带宽成本高,图像下载将占用大量带宽。但是,我的应用程序目前有一个大约5500个用户的小用户群(根据flurry统计,我估计其中1500个用户是活跃的),我有一个巨大的未使用的带宽允许与我当前的主机包。

    所以我愿意考虑如何解决这个棘手的问题。

    1 回复  |  直到 16 年前
        1
  •  2
  •   TechZen    16 年前

    我为一个客户做了一些关于单触式的研究。MonoTouch的最小文件大小为5.1MB,因为所有的C类文件都是这样的。它似乎没有影响应用商店用户下载单触式应用的意愿。

    在我的研究中,我没有看到任何证据表明最终用户在做出购买决策时会非常关注应用程序的大小。许多应用程序首先通过iTunes下载到非手机上,而1MB和5MB之间的下载时间差异几乎不明显。很多终端用户只是模糊地意识到应用程序甚至有一个尺寸。

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