iOS APP 瘦身实战
前言
app为什么要瘦身,无非是下面几个情况,
第一,产品或者运营觉得包体积过大了!
第二,对技术的追求,也给自己涨点绩效!
第三,面试被问到了..... 哈哈
不管哪种情况吧,要瘦身就好好玩下吧。
1.清理无用的图片资源
作为一个对app瘦身不太了解的人来说,最好的入手就是对图片的清理了,也很好理解,删除不需要的图片即可。那么我们要怎么操作,去Asset一张张图片搜索吗?不得不说,这也是个办法,缺点就累!不会偷懒的程序员不是好的程序员。下面给大家介绍一款非常好用的工具--LSUnusedResources。从来没见过如此简洁好用的工具!
使用方法:去github下载代码,点击编译即可生成mac上可视化界面
在project path 设置你的工程目录,只要选择到工程的根目录即可 然后就点击 下面的search,就会出现没有用到的图片了
才几秒就完成了...真男人,够快! 剩下要怎么做,你知道了吧?
当然,安全起见,你最还还是要搜索下代码里面是否真的没有,然后吧要删除的拖发出来给同组人员确认下,要不然人家来家神仙写法,本地图片用不通的方式拼接起来的,那就悲剧了,虽然是小概率事件,但是我们要那绩效,不要背锅!
2.图片压缩,即降低大图片所占的内存
作为菜鸟,我们只能孜孜不倦的往资源文件下手了,谁让它是最容易想到,也是最好下手的呢。
图片压缩我们最开始想到的是找UI压缩一下,但是找UI压缩图片,第一沟通问题,并不是每个UI都那么好说话的,第二,当图片压缩到一定程度,UI那边也无能为力。
这里我们可以使用安卓那边常用的方法:通过webp格式来压缩图片
线上直接Png转webp 地址:squoosh,
第一步,把图片转换为webp格式图片
第二步,用pod 'SDWebImageWebPCoder' 增加SD的WebPCoder;PS: 安装失败问题解决: 换源 之后我没有科学上网,多次重复install就成功了
第三部:代码
#import "UIImage+WebP.h"
NSString*path = [[NSBundle mainBundle] pathForResource: @"图片名称"ofType: @"webp"];
NSData*data = [[NSData alloc] initWithContentsOfFile:path];
UIImage*yindao1Image = [UIImage sd_imageWithWebPData:data];
结论:我实验了三张png图片大小分别为:184K 201K 246K 共621K 转成webp后61K 57K 74K 共192k; 减小了439K 。然后打包出来,发现ipa包的体积减少的数字跟这个数据是差不多的。可见WebP的压缩率高达70%左右!
3.去掉不用的类文件
图片资源下手差不多了。我们继续看看有没有冗余的类的,就是工程里面已经不用的类
找啊找啊找,网上说的工具一大堆,一一验证下来,我用的是CATClearProjectTool;编译一下 即可出来可执行文件。
然后把 自己的工程.xcodeproj 拖进去 查找即可。ps:验证拖.xcworkspace文件无效
经过代码搜索确认一些文件可以删除后在打包看看,删了几个文件才省了了几十K空间....费时费力不讨好! 哎,如果你做了这步能省很多空间,那我觉得你要想想自己的代码问题咯。
经常实测,这步其实做不做无所谓,鸡肋!其实你看下mach-o文件跟包的体检对比下就清楚了,mach-o占的比重并不高!Assets.car所占比例才高,所以要瘦身,其实还是得从资源下手!在代码上折腾N久 ,还不如改几个图片为webp格式的效率高
4.另外可以探究的方向
把静态库改为动态库;但是项目中动态库过多(官方建议不要超过6个)会影响项目启动时间,那又要来搞合并动态库了。有兴趣的可以研究下,如果可以留言告知下结果,对瘦身起多大作用,那本人感激不尽!
iOS APP 瘦身实战相关推荐
- iOS App 瘦身实践总结
文章最后有我的 12 条小总结. 原文始发地址:我的 GitHub 写在前面 最近公司需求不多,正好研究一下 App 瘦身的办法,写了点小总结. 如果你不知道下面几个问题,不妨可以看看文章. 使用 . ...
- iOS app 瘦身
本文译自:Guides and Sample Code 的App Thinning (iOS, tvOS, watchOS) App 瘦身 App Store和操作系统通过将app定制到用户的特定设备 ...
- iOS app瘦身优化之路
缩减iOS安装包大小是很多中大型APP都要做的事,一般首先会对资源文件下手,压缩图片/音频,去除不必要的资源.这些资源优化做完后,我们还可以尝试对可执行文件进行瘦身,项目越大,可执行文件占用的体积越大 ...
- iOS App瘦身---清理iOS工程里无用的图片
LSUnusedResources 推荐一个清理图片的应用 https://github.com/tinymind/LSUnusedResources 我们的工程在经过多人后,往往会出现较多的垃圾,导 ...
- iOS 优化 - 瘦身
前言 iOS 优化将是一个专题,其中会包括包体积优化(瘦身).启动时间优化.UI 优化等等.那么这个专题的开篇就从瘦身开始吧. APP 的大小是分为 APP 下载大小和安装大小两个概念的. 下载大小是 ...
- ios开发app瘦身
缩减iOS安装包大小是很多中大型APP都要做的事,一般首先会对资源文件下手,压缩图片/音频,去除不必要的资源.这些资源优化做完后,我们还可以尝试对可执行文件进行瘦身,项目越大,可执行文件占用的体积越大 ...
- App瘦身最佳实践(分析了微信、淘宝、微博图片文件的放法)
本文会不定期更新,推荐watch下项目.如果喜欢请star,如果觉得有纰漏请提交issue,如果你有更好的点子可以提交pull request. 本文的示例代码主要是基于作者的经验来编写的,若你有其他 ...
- App 瘦身最佳实践
原文链接:www.jianshu.com Android本文会不定期更新,推荐watch下项目.如果喜欢请star,如果觉得有纰漏请提交issue,如果你有更好的点子可以提交pull request. ...
- OS - Bitcode App 瘦身中间码
1.Bitcode 随着 Xcode7 的发布,Apple 提供了一项新的技术来支持 App 瘦身功能,那就是 Bitcode. 1.BitCode 是什么 Bitcode is an interme ...
最新文章
- Web API路由和动作选择
- GPRS流量计算方法(TCP/IP)
- linux7.4 配置yum,Centos7.4重装yum
- 《计算机组成与体系结构:性能设计》读后小记 11、指令集:寻址方式和指令格式...
- 幼儿园带括号算式口诀_整理41组“数学顺口溜”+大九九乘法口诀表!给孩子们收藏...
- Facebook 最新可佩戴 AR 设备、AR 设备未来五年市场扩张、语音社交新创Swell等|Decode the Week...
- 一步一步教你抓数据——用.net精确提取网站数据的通用方法 [转]
- 如何看透借款人的隐形负债?
- Google SVN托管和使用学习笔记
- iOS开发 autoResizingMask使用
- js排序的时间复杂度_js 排序算法之快速排序
- c语言love字符怎么打,love字母特殊符号
- Excel快捷键大全 Excel2013/2010/2007/2003常用快捷键大全【转】
- c语言倒直角梯形,请问一下大佬们这段代码问题在哪里?
- win ollvm环境_打造舒适搬砖环境,这些是我最想推介的桌面好物
- 信息系统项目管理师2018年上半年下午案例分析题及答案
- vue 移动端歌词实时滚动及优化
- arduino ide 2.0 中文设置
- Android实现有声计算器代码,android studio实现简单的计算器(无bug)
- 第一阶段冲刺 eighth day
热门文章
- vertical-align的用法
- 搜索引擎登录站点-提交网站(大全)
- [导入]以IT民工的名义,我经济条件改善了很多很多,却发现越发穷苦的趋势出来了...月光的雏形已经显现,怨念。。...
- 北师大 马原 自测题复习
- 利用MP实现分页查询
- Intra-Instance VICReg: Bag of Self-Supervised Image Patch Embedding
- anycast隧道_隧道服务器是什么意思
- 考研数据结构之查找(9.8)——练习题之编写一个函数利用二分查找算法在一个有序表中插入关键字k并保持表的有序性(C表示)
- 网络精英赛模拟练习(7)
- python批量处理PDF文档,输出自定义关键词的出现次数