美文网首页
load 耗时工具类原理解析

load 耗时工具类原理解析

作者: 不拘小节123456 | 来源:发表于2021-10-12 10:27 被阅读0次

如果要对load函数进行hook,需要做到下面两点:
1,在系统调用load方法之前对load进行hook
2,对load进行hook

研究:
1,经过runtime源码分析,在程序启动的时候先调用mapImages(加载所有mach-0文件),for循环调用所有mach-o文件的loadImage函数(该函数第一次调用会加载所有mach-o分类信息,并调用改mach-o文件的load函数),
2,根据Cocopods的源码,动态库的优先级比静态库高,库名字的ascall码小的先加载,
实现方案:
编写一个动态库字库,库的名字首字母要保证是所有动态库最小的,
在该库中通过attribute(constructor)函数(该函数会在该库的load函数后调用),在这个时候已经加载了所有的分类信息,并且还没有调用业务中的其他load函数,这个时候可以拿到所有unlazy类,然后进行hook拦截

load方法过多到时启动慢的原因是类的release这个操作很耗时
参考:
https://triplecc.github.io/2019/05/27/%E8%AE%A1%E7%AE%97load%E8%80%97%E6%97%B6/

相关文章

  • load 耗时工具类原理解析

    如果要对load函数进行hook,需要做到下面两点:1,在系统调用load方法之前对load进行hook2,对lo...

  • Load和Initialize实现原理

    Load和Initialize实现原理 +Load实现原理 +load方法会在runtime加载类、分类时调用 每...

  • iOS原理(四)----+load,+initialize

    iOS原理(四)----+load,+initialize +load +load方法会在runtime加载类、分...

  • ThreadLocal工具类封装

    原理可以看这篇文章,这里只封装工具类 ThreadLocal使用及原理解析

  • +load 与 +initialize

    14:+load方法调用原理 load方法是在runtime加载类,分类的时候调用,每个类,分类的load方法,在...

  • 2019-09-21load 理解

    load runtime加载类或者分类时候调用load 的调用原理通过查看源码 load调用顺序

  • 工具类

    系统工具类 snackbar工具类 xml解析工具类

  • SparseArray原理分析

    系列文章地址:Android容器类-ArraySet原理解析(一)Android容器类-ArrayMap原理解析(...

  • SparseIntArray原理分析

    系列文章地址:Android容器类-ArraySet原理解析(一)Android容器类-ArrayMap原理解析(...

  • category原理探究-2

    +load 方法解析 分析load方法前先来做一个小测验: 我们来运行一下程序,发现没有调用这些类但是load方法...

网友评论

      本文标题:load 耗时工具类原理解析

      本文链接:https://www.haomeiwen.com/subject/dktroltx.html