在iOS上减少捆绑包大小的方法有哪些?

时间:2014-03-08 22:13:42

标签: ios

我有一些尺寸巨大的图像,我的包大小目前是70 MB。我认为Xcode已经通过png crush运行资产了。

4 个答案:

答案 0 :(得分:4)

  • 不要将任何文字图片用于无用的效果,请改用UILabel
  • 使用CAShapeLayer而不是使用来绘制简单的形状和效果 图像。
  • 使用 JPEG 代替 PNG ,您不需要透明度。 (实际文件大小取决于此处的图像内容)
  • 使用 PhotoShop 中的保存为网络选项或其他工具优化 PNG 图像。
  • 精灵组合在一起而不是单独的图像。
  • 确保删除所有未使用的资源。
  • 不要本地化图像的常见部分,只定位图像 不同部分(想想带有小旗帜的背景图片) 每个区域设置的底部。使用一个单一的bg图像和单独的标志 图片。仅定位标志图像,而不是整个bg图像 标志。)
  • 对iOS7和之前的iOS版本使用相同的启动图像(您 需要手动编辑.xcassets中的JSON文件
  • 尝试在首次启动上使用 CDN下载资源。

除了图像之外,请记住这些:

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

答案 1 :(得分:3)

您可以尝试将图像转换为jpg(如果它们没有任何透明区域)。 另请尝试使用http://imageoptim.com/

答案 2 :(得分:0)

你似乎不太可能需要巨大的图像。毕竟,屏幕并不大。因此,最可能的尺寸缩小形式是将图像的物理尺寸减小到您实际要显示的尺寸。

这可以在用户下载图像时节省带宽,减少用户硬盘(设备)上的应用程序大小,还可以在加载图像时节省内存。加载大于显示图像大小的图像是浪费大量RAM;毕竟,请记住,所涉及的记忆与差异的 square 呈指数级增长。

答案 3 :(得分:0)

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

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

如果您使用缓存标头,它还可以让您灵活地在以后换出这些图像。