** 使用场景 **
方法增强,进行API Hook进而达到变更系统方法的需求:增加日志,进行监控,添加缓存。
方法拦截。代理方法修改原方法的参数和返回值。
Hook 的最关键的步骤其实是找到Hook点,只有找到这个点才能进行接下来的注入。所以细心找到这个关键点非常重要。
寻找Hook点,原则是静态变量或者单例对象,尽量Hook pulic的对象和方法,非public不保证每个版本都一样,需要适配。
参考文献
https://www.jianshu.com/p/b30ea19c444b
https://github.com/tiann/understand-plugin-framework 理解插件化GitHub
https://blog.csdn.net/eastmoon502136/article/details/79366943
https://jasonzhong.github.io/2017/04/19/Android-Hook-%E6%9C%BA%E5%88%B6-%E5%9F%BA%E7%A1%80/