APP瘦身,减小包大小的方法

来源:互联网 发布:bilibili手机直播软件 编辑:程序博客网 时间:2024/06/10 00:14

资源过多,容易导致APP的包太大,会加重上传和下载的负担,所以有的时候需要做一些优化

  1. 不透明的大图片压缩成JPG格式
  2. 大的背景图片如果一定要是png的,可以用photoshop 把它保存为web格式的图片,压完之后注意看一下,有没有太大的失真。
  3. 删除不必要的字体,如果一定要,可以考虑使用 ios api (未验证)http://blog.csdn.net/bingowxd/article/details/16848595
  4. 把product 里面的文件 使用“显示包内容”方式,按照文件大小排序,查看打完包后具体是哪些图片占用太多的空间,并针对性地优化


tips:

  1. photoshow 有动作录制回放功能,可以把相同的操作用快捷键完成,不会使用请百度谷歌
  2. png压缩成jpg,代码里面需要做一些特殊的更改。考虑到一般使用 [UIImage imagewithname:@"name.png"], 新建一个类,继承自UIImage,重写image named:方法,把name方法改成能够识别 jpg、JPG、png、PNG以及@2x,代码附在后面
  3. Xcode编译如果遇到重复的文件,报错,但不影响编译通过,解决办法就是把重复的文件删除就行了
  4. 我使用的软件 Dedupo:去掉重复的文件 EazyBatchPhoto: 图片格式转换,可 png 和 jpg 互转 photoshop:当EazyBatchPhoto压缩不理想,使用保存为web格式。

.h 文件
#import <UIKit/UIKit.h>@interface DSImageForExtention : UIImage@end
.m 文件
#import "DSImageForExtention.h"@implementation DSImageForExtention+ (UIImage *)imageNamed:(NSString *)name{    NSString *imgName = nil;    if ([super imageNamed:name]) {        return [super imageNamed:name];    }    else    {        imgName = name;        if ([imgName hasSuffix:@"jpg"]) {            imgName = [imgName stringByReplacingOccurrencesOfString:@"jpg" withString:@"png"];            if (![super imageNamed:imgName]) {                imgName = [imgName stringByReplacingOccurrencesOfString:@".png" withString:@".@2x.png"];            }        }        else if ([imgName hasSuffix:@"png"]) {            imgName = [imgName stringByReplacingOccurrencesOfString:@"png" withString:@"jpg"];            if (![super imageNamed:imgName]) {                imgName = [imgName stringByReplacingOccurrencesOfString:@".jpg" withString:@".@2x.jpg"];            }        }    }    return [super imageNamed:imgName];}@end
注:因为这个代码是根据自己的项目定制的,使用的时候请根据实际情况修改

使用方法
[[UIImageView alloc] initWithImage:[DSImageForExtention imageNamed:@"hello@2x.png"]];



0 0
原创粉丝点击