前段時間比較充裕遏佣,大家都說需要對APP的ipa包進行瘦身挖炬,想到了幾點:
1、對部分組件代碼打包成靜態(tài)庫
2状婶、對APP內的資源文件進行過濾以及對圖片進行再次壓縮
3意敛、利用google開源的webp工具,對圖片進行壓縮膛虫,然后再加載webp后綴的圖片
其中第一點和第二點都使用過了草姻,APP的ipa包也得到了明顯的減小,但是由于工程內需要預加載的圖片過多稍刀,以及很多圖片都是一些較大的高清圖片撩独,圖片壓縮已經(jīng)到了極致,不能再次進行壓縮,否則會讓圖片顯得模糊不清跌榔,故使用google的webp工具對圖片進行壓縮,這個工具可以讓幾百K的圖片壓縮后變成幾K捶障,而且圖片不會變的模糊僧须。
在github上我們可以查詢到前人已經(jīng)有人封裝好了庫給我們使用,但是我們pod的時候libwebp.a我們無法pod下來项炼,這個就需要我們自己去google網(wǎng)站https://chromium.googlesource.com/webm/libwebp去下載webp的c代碼,然后把這些基本導入到工程中担平,同時SDWebImage以前的版本因為集成了webp庫是可以直接拿來使用的,不知后面為啥又把這個庫給直接刪除了锭部。
目前需要用加載webp后綴圖片的時候暂论,我們還是需要SDWebImage這個框架中的一些方法的,這里就不多說拌禾,后面大家自己看源代碼取胎。下面我把webp的c語言代碼直接封裝成了webp.framework 靜態(tài)庫供自己使用,同時配合SDWebImage進行封裝加載webp圖片湃窍。具體使用如下:
1闻蛀、cocoapod管理
pod 'WebpiOS'
2、手動導入
把webp文件下的文件導入到工程您市,同時工程依賴SDWebImage第三方框架
導入頭文件 #import "UIImage+WebP.h"
@interface UIImage (WebP)
(nullable UIImage *)sd_imageWithWebPData:(nullable NSData *)data;
@end
圖片轉換工具下載地址?https://github.com/mymirror/webp-.git
such as:
UIImage *img = [UIImage sd_imageWithWebPData:[NSData dataWithContentsOfFile:[[NSBundle mainBundle]pathForResource:@"bg_third@3x" ofType:@"webp"]]];
UIImageView?imageview = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 320, img.size.height320/img.size.width)];
[self.view addSubview:imageview];
[imageview setImage:img];
具體demo地址: