: Hook 技术的关键是找好 Hook 点 , 将钩子挂在哪 , 勾住哪个方法 , 需要遵循一定的规则 :
静态变量 / 单例 : 优先选择 静态变量 , 单例对象 , 这些对象一旦创建 , 基本不会改变..., 一般是在原有调用的基础上 , 不影响原来功能的前提下 , 注入新的逻辑 ;
二、Hook 按钮点击事件
----
1、按钮点击事件
获取布局文件的按钮 , 并为其设置点击事件 , 该点击事件 public...");
} catch (NoSuchMethodException e) {
e.printStackTrace();
}
设置 getListenerInfo 方法的可见性 , 之后要调用该方法...成员 , 并重新设置新的成员 , 注入业务逻辑 ;
① 先根据全类名获取 android.view.View$ListenerInfo 字节码对象 ;
// ① 先根据全类名获取 ListenerInfo...onClick 方法中 , 调用之前获取的 监听器的 onClick 方法 , 此外还可以在该点击方法前后注入开发者自定义的业务逻辑 ;
// ⑤ 修改 View 的 ListenerInfo 成员的