资源文件是放置在应用程序本地与应用程序一起变异、打包和发布的非程序代码文件,如应用中的声音、视频、图片和文本文件等。

1、图片文件优化

图片文件优化包括文件格式和文件大小的优化。移动设备中,支持的图片格式主要是png、gif、jpeg格式,苹果推荐png格式。在Xcode中,继承了第三方png优化工具pngcrush,它可以在编译的时候对png格式文件进行优化和压缩,我们只需要设定编译参数Compress PNG Files为Yes就可以了。
因为png格式文件是jpeg格式文件的三倍,所以如果是网络资源,推荐使用jpeg格式。
图片是一种特殊的资源文件,创建UIImage对象时,可以使用静态工厂方法+imageNamed:和构造函数-initWithContentsOfFile:。
+imageNamed:方法在内存中建立缓存,这些缓存直到应用停止才清除。如果是贯穿整个应用的图片(如图标、logo等),推荐使用+imageNamed:创建。如果是使用一次的图片,推荐使用构造函数-initWithContentsOfFile:创建。

2、音频文件优化

iOS平台中,主要的音频文件格式有4种:
(1)WAV文件
(2)MP3(MPEG Audio Layer3)文件
(3)CAFF(Core Audio File Format)文件
(4)AIFF(Audio intenchange File Format)文件
音频文件优化包括文件格式和文件大小的优化,单也要考虑到文件使用场景、采用的技术(OpenAL、AVAudioPlayer)等因素。在iOS应用中,使用本地音频资源文件的主要应用场景是背景音乐和音乐特效。
背景音乐优化
背景音乐会在应用中反复播放,它会一致驻留在内存中并消耗CPU,所以更适合比较小的文件,而压缩文件是不错的选择。压缩文件主要有AIFC和MP3两种格式,一般首选AIFC,因为这是苹果推荐的格式。但是我们获得的原始文件格式不一定是AIFC,这种情况下我们需要使用afconvert工具,将其转换为AIFC格式。在中终端中执行如下命令:
$ afconver -f AIFC -d ima4 cast.wav
其中-f AIFC参数用于转换为AIFC格式,-d ima4参数指解码方式,cast.wav是要转换的源文件。转换成功后,会在相同目录下生成cast.aifc文件。afconvert工具也可以转化MP3等其他压缩格式文件,单MP3本身就是有损压缩,再经过afconvert转换,音频的质量会受到影响,尽量使用WAV格式。
音乐特效优化
音乐特效用于很多游戏中,如发射子弹、敌人被打死或按钮点击等发出的声音,这些声音都比较短。如果追求震撼的3D效果,可以采用苹果专用的无压缩CAFF格式文件,其他格式文件尽量不考虑。一般不要使用压缩音频文件,这主要是因为音乐特效通常采用OpenAL技术,它只接受无压缩的音频文件。另外,压缩音频文件都会造成音质的丢失。如果我们没有CAFF格式的文件,可以使用afconvert工具将其转换为CAFF格式,终端命令如下:
$ afconvert -f caff -d LEI16 cast.wav
其中-f caff参数用于转换为CAFF格式,-d LEI16参数指定解码方式,cast.wav是要转换为源文件。默认音频的采样频率为22050Hz,如果想要搞音频采样频率,可以通过如下命令:
$ afconvert -f caff -d LEI16@44100 cast.wav
如果资源文件来自于网络,那么MP3格式就非常适合的。

参考资料
《IOS开发指南 从HELLO WORLD到APP STORE上架 第5版》

iOS 优化资源文件相关推荐

  1. iOS - Bundle 资源文件包

    原文:https://www.cnblogs.com/QianChia/p/6280435.html 1.Bundle 文件 Bundle 文件,简单理解,就是资源文件包.我们将许多图片.XIB.文本 ...

  2. 实现iOS图片等资源文件的热更新化(二):自定义的动态 imageNamed

    这篇文章,要解决的是,使用一个自定义的 imageNamed 函数来替代系统的 imageNamed 函数.内部逻辑,将贯穿对比论证 关于"合适"的图片的定义.对iOS加载图片的规 ...

  3. iOS架构-静态库.framework之资源文件打包bundle(6)

    iOS架构-静态库.framework手动打包及脚本化打包(5)中介绍了.framework的脚本化打包,虽然在iOS架构-静态库.a打包之资源文件打包成bundle(4)中已经演示过,其实是一样的. ...

  4. iOS架构-静态库.a打包之资源文件打包成bundle(4)

    iOS架构-静态库.a的打包及使用(一) iOS架构-静态库.a的脚本化打包及使用(二) 资源文件主要包括:xib.图片以及其他文件资源(json.string等).这里主要介绍 xib.图片.其他的 ...

  5. 【Android 安装包优化】Android 应用中 7zr 可执行程序准备 ( Android Studio 导入可执行 7zr 程序 | 从 Assets 资源文件拷贝 7zr 到内置存储 )

    文章目录 一.Android Studio 导入可执行 7zr 程序 二.从 Assets 资源文件拷贝 7zr 到内置存储空间 三.参考资料 一.Android Studio 导入可执行 7zr 程 ...

  6. [前端优化]使用Microsoft Ajax Minifier对资源文件进行压缩优化

    在前端优化中,js.css等文件的优化一般都是压缩的优化,进行合并.减小体积以达到减小请求的目的. 今天发现了一个集成在VS中的压缩插件,使得压缩变得比较快捷. 配置方法 首先需要去下载Microso ...

  7. iOS获取App ipa包以及资源文件-----本人亲自测试可用!!!

    原文地址::https://www.jianshu.com/p/fdb50d303ad6 相关文章 1.iOS获取App ipa包----https://www.jianshu.com/p/7710c ...

  8. iOS 将图片文件打包为bundle资源

    1. 创建bundle,如图,点击 +  ,弹出选择框, macOS 下的Framework & Library  ,点击bundle,输入bundle的名字,然后点击 finish. 2. ...

  9. web性能优化--用gzip压缩资源文件

    #一.gzip压缩技术 gzip(GNU- ZIP)是一种压缩技术.经过gzip压缩后页面大小可以变为原来的30%甚至更小,这样,用户浏览页面的时候速度会快得多.gzip的压缩页面需要浏览器和服务器双 ...

最新文章

  1. Tomcat启动时加载本地证书出错的问题
  2. 17110 Divisible(basic)
  3. html剧场座位设计图,如何设计剧院座位,21个细部案例
  4. VS2010 + OpenCV2.3配置 ; 在VS2010下安装配置OpenCV2.3 ; 全程截图,绝对能配置好,不能的留言!...
  5. 数据结构和算法——八种常用的排序算法----选择排序
  6. 小程序 长按复制文本
  7. Node.js简介与架构
  8. macOS制作Linux启动U盘,如何在Mac OS下用ISO包制作启动U盘
  9. Excel学习日记:L19-定义名称Indirect函数下拉选单设定
  10. 有关statistics
  11. 简单数据复杂数据的区别
  12. Processing 模拟池塘生态系统
  13. BeanUtils.populate()方法的简单使用
  14. 【linux】监控和管理linux进程
  15. /home/wxl/jdk1.8.0_91/jre/lib/i386/libawt_xawt.so: libXext.so.6: cannot open shared object file: No
  16. 那些年我做家教学过的东西_决策与风险decision and risk_1_贝叶斯推断Bayes Inference
  17. 有赞数据中台建设实践
  18. Vue使用Antv F2
  19. 如何用USBCNC四轴泡沫切割机切割锥形锥
  20. window用户程序数据文件夹AppData

热门文章

  1. Table storage engine for ‘******‘ doesn‘t have this option 问题
  2. php小蛋白配方奶粉,部分水解奶粉排行榜中的美赞臣亲舒,凭实力出圈
  3. 画世界怎么用光影_水彩画中的光与影/世界绘画经典教程
  4. mapbox-gl-draw改造,支持绘制时实时显示面积
  5. 奥塔在线:CentOS下查看crontab定时任务输出日志
  6. linux定时任务输出时间日志,linux 定时任务 日志记录
  7. Python基础入门9:字符串1,字符串的驻留
  8. Windows中文账户名修改为英文
  9. 用计算机术语赞美老师,【用一句话赞美各个学科】_赞美各学科老师的对联
  10. R语言3.12 对应分析