当前位置: 首页 > article >正文

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


http://www.kler.cn/a/300351.html

相关文章:

  • MongoDB基本操作
  • 大模型GUI系列论文阅读 DAY2续:《一个具备规划、长上下文理解和程序合成能力的真实世界Web代理》
  • Express中间件
  • Vue3数据响应式原理
  • Nginx:通过upstream进行代理转发
  • Netty的相关组件之间的关系
  • Pyspark下操作dataframe方法(3)
  • 【Python第三方库】OpenCV库实用指南
  • UnLua环境搭建
  • Vue3中的监听器。toRefs与toRef的区别
  • 海康威视相机在QTcreate上的使用教程
  • 【SQL】百题计划 - SQL最基本的判断和查询。
  • 【C++】入门基础(上)
  • 在 Windows 系统上,文件传输到虚拟机(VM)可以通过 VS Code 的图形界面(GUI)或命令行工具进行操作
  • Linux网络——从《计算机网络》到网络编程
  • Taro + Vue 的 CSS Module 解决方案
  • 界面控件DevExpress中文教程:如何PDF图形对象的可见性?
  • 算法基础-约数
  • PHP函数如何传递数组参数
  • Shell脚本计算π的近似值
  • Java 并发中线程和进程的关系与区别
  • 【Altium Designer】AD18 导入3D模型
  • What‘s new in C# 7,8,9,10
  • MySQL连接相关知识点
  • LeetCode:977. 有序数组的平方 双指针 时间复杂度O(n)
  • MySQL原理之UUID主键分析,插入或更新语法分析