扫描无用的类原理
静态扫描的原理
在iOS编译的产物 Mach-o文件
中 __DATA __objc_classrefs
段记录了引用类的地址,__DATA __objc_classlist
段记录了所有类的地址,取差集可以得到未使用的类的地址,然后进行符号化,就可以得到未被引用的类信息。 (PS:静态类获取的类会有误差,需要人工确认才可删除!)
方法介绍
- 第一步 通过
otool -v -s __DATA __objc_classrefs
获取到引用类(明确用到的)的地址。 - 第二步 通过
otool -v -s __DATA __objc_classlist
获取所有类的地址。 - 第三步 用所有类信息减去引用类的信息,此时我们可以拿到未使用类的地址信息。
- 第四步 通过
nm -nm
命令可以得到地址和对应的类名字。
在北京的灯中,有一盏是我家的。这个梦何时可以实现?哪怕微微亮。北京就像魔鬼训练营,有能力的留,没能力的走……
分类:
代码优化
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
2018-04-27 开发环境和发布环境切换以方便测试