iOS上减小包大小的方法有哪些?

3

我有一些非常大的图片,我的捆绑包大小目前为70MB。我认为Xcode已经通过png crush对这些资源进行了压缩。


1
你有什么类型的图片?最大的图片有多大?你是如何创建这些图片的? - Sergey Kalinichenko
删除一些图片或者缩小它们的尺寸...? - Matt Ball
4个回答

5
  • 不要使用带有无用效果的文本图片,而应该使用UILabel
  • 绘制简单的形状和效果时,请使用CAShapeLayer代替使用图片。
  • 在不需要透明度的情况下,请使用JPEGs而不是PNGs。(实际文件大小取决于图像内容)
  • 请在PhotoShop或其他工具中使用Save for Web选项来优化 PNG 图像。
  • 请使用sprites合并在一起,而不是单独的图片。
  • 确保删除所有未使用的资源。
  • 不要对图片的常见部分进行本地化,只本地化不同的部分。(例如,考虑一个带有每个区域小旗子的背景图像。使用单个背景图像和单独的旗子图像。只对旗子图像进行本地化,而不是整个带有旗子的背景图像。)
  • iOS7和之前的iOS版本使用相同的启动画面。(您需要手动编辑.xcassets中的JSON文件)
  • 尝试在首次启动时使用CDN下载资源。

除了图像之外,请记住以下内容:

  • 如果不需要自定义字体,请尝试使用默认系统字体来替换自定义字体
  • 请使用MP3音频文件,而不是WAV文件。(或其他经过压缩的格式)
  • 确保删除所有未使用的第三方框架。

1
这些建议似乎比被接受的答案更为合理。 - 0xNSHuman

3

如果图像没有透明区域,您可以尝试将其转换为jpg格式。此外,也可以尝试使用http://imageoptim.com/


0

看起来你实际上并不需要巨大的图片。毕竟,屏幕并不是很大。因此,最可能的尺寸缩小形式是将图像的物理尺寸缩小到实际显示的尺寸。

这样做可以在用户下载图像时节省带宽,减小用户硬盘(设备)上应用程序的大小,并且在加载图像时也可以节省内存。加载比实际显示尺寸更大的图像会浪费大量的RAM;毕竟,记住,涉及的内存随着差异的平方呈指数级增长。


0

一种选择是将图像托管在像OpenText这样的CDN上,并在应用程序初始化或首次需要它们时获取它们。显然,这需要更多的编码工作,但像SDWebImage这样的项目使其变得非常容易:

https://github.com/rs/SDWebImage/tree/master/SDWebImage

如果您使用缓存头,它还可以为您提供灵活性,以便稍后更换这些图像。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接