iOS开发中的Assets.xcassets和Assets.car

地址:http://daipei.me/posts/assets_in_ios/ 
转载请注明出处 
我的博客搬家了,新博客地址:daipei.me

写在前面

在iOS开发中,最终项目的大小跟项目中的图片关系很大,因为代码的大小是很小的,可以说影响最终项目大小的主要就是项目中的图片资源,所以如何组织项目中的图片资源显得尤为重要。

正文

Assets.xcassets文件

当你创建一个空项目时,会默认帮你生成一个Assets.xcassets文件,当然你也可以自己创建: 

如果没有特殊的需求,一个工程里有一个xcassets文件就可以了,项目中所有图片都可以放在里面,为了组织更有条理更清晰,可以在这里面用文件夹分类,可以按照功能的模块来分类,比如一个模块的功能放在一个文件夹中。

在这个文件中默认会有一个AppIcon的文件,可以将相对应大小的应用图标直接拖到右边对应大小的地方,就可以了。处理AppIcon这里面还可以放LaunchImage,只要在这个AppIcon这个栏内右键新建即可,还可以针对不同设备新建不同的LaunchImage和AppIcon

如果只想往项目里加入一张普通的图片,就选择New Image Set,这个Image Set实质就是一个文件夹,里面包括不同分辨率的图片和一个Contents.json文件,内容如下包含着这个图片集中图片文件的基本信息,同AppIcon一样,只要将自己的图片拖到相应的位置即可,然后在项目中使用imageNamed:方法时,使用的名字是这个Image Set的名字,而不是图片真实的名字,这里可以注意的是图片真实的名字虽然无所谓,但最好还是按照一些规律来,最好不要出现中文,而Image Set的名字可以定义一些规则:如用image开头,中间加上模块名,最后加上图片本身的名字,中间用下划线连接,当然这里只是我个人的提议,我们项目中图片就是用这种方式进行命名的。

{
  "images" : [
    {
      "idiom" : "universal",
      "filename" : "sPECIALOFFERIconSurvey1.png",
      "scale" : "1x"
    },
    {
      "idiom" : "universal",
      "filename" : "sPECIALOFFERIconSurvey1@2x.png",
      "scale" : "2x"
    },
    {
      "idiom" : "universal",
      "filename" : "sPECIALOFFERIconSurvey1@3x.png",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

将图片放在xcassets文件中的好处:

  • 组织清晰
  • 不同功用的图片有专门的格式
  • 不同分辨率的图片好管理
  • 工程打包后会对图片进行压缩

这里我要着重说一下第四点,包的大小,如果将图片直接放在工程目录下面,项目打包后图片文件也是散落在包里面,而且不会对图片进行压缩,而如果放在xcassets中,在打包后会将这些图片(除了AppIcon和LaunchImage,这两种图片是直接放在包中的)统一压缩成一个Assets.car的文件,大大减小包的大小,具体是几倍的关系我记不清了,但是相当的可观。

Assets.car文件

说完Assets.xcassets,那么说说由它生成的Assets.car文件,这个文件是一种压缩文件。 
我们在开发过程中肯定会遇到一种情况就是把一个ipa的包解压出来看看里面有哪些图片,不管是不是自己的项目,总可能会有这种需求,那如果图片都在Assets.car中该怎么获取呢,直接解压是不行的,这时候就需要用到一个命令行工具叫cartool,这是一个开源软件,可以从github下载,这里给出github地址:https://github.com/steventroughtonsmith/cartool

使用方法是cartool Assets.car outputDirectory

还是给大家上一张图

先将ipa解压缩,然后显示app包的内容,将Assets.car复制到桌面,然后就可以像上图一样,当然要在桌面上新建一个文件夹,如果你想直接把图片解压到桌面上我也是不介意的!

后记

这篇博客大概就是这些内容,主要就是给大家分享这个叫做cartool的工具还有就是科学的组织项目中的图片,当然要感谢大神写出这样方便的工具。

话说这个月已经过去一半了,然而这是这个月的第一篇博客,还需加油,努力学习,努力写博客,分享知识,分享快乐,每月四篇一定要实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值