iOS 本地图片扫描优化
为了进行ipa包瘦身,对本地的图片进行扫描优化,是一个必不可少的步骤,本地图片扫描优化主要有两个方面
1,无用图片扫描
2,重复图片扫描
其中无用图片扫描主要方向有
1)扫描没有没xcode引用的图片
2)扫描代码中使用的图片
3)扫描xib,storyboard中使用的图片
我这里扫描的图片格式有png,jpeg,pdf,其中图片使用的扫描主要是常见图片使用方式整理,并编写相应的正则表达式进行扫描。另外会存在asset中图片名字和实际的图片图片名字不一致这种情况,我这里由于时间关系,暂时没有实现。
重复图片扫描主要方向有
1,比较两个图片的md5值是否相同来判定图片是否重复,并把重复的图片输出
2,对于较大的图片,按照一定的规则进行取样,并对取样后的内容获取md5值,并对获取的md5值进行比较,如果重复把比较图片路径输出
优化点:
1,已经扫描到未使用的图片,不再参与后续重复图片的扫描
2,已经扫描到重复的图片,不再参与后续的重复图片扫描
3,图片名字命名指定一个合适的规范,能够很大程度提高扫描的准确率,比如:图片名字命名不会和类名, 方法名等存在重名的情况
通过以上的优化,提高扫描效率,节约扫描时间
我这边的代码是使用python实现的,源代码地址:
https://github.com/xindizhiyin2014/PicScanner.git
已编译好的可执行文件(只能在M系列芯片的mac上运行),下地址:
https://github.com/xindizhiyin2014/PicScanner/tree/main/dist
软件界面:
图片
后面发现了其他同行写的一个,也给大家分享一下:
https://github.com/tinymind/LSUnusedResources
其他同行的文章:
https://blog.51cto.com/u_16213661/7892818
https://blog.51cto.com/u_16213710/7893016