autojs-Hook按钮点击事件

简介: 牙叔教程 简单易懂

牙叔教程 简单易懂


"ui";
importClass(android.view.View);
importClass(java.lang.Class);
ui.layout(
  <vertical margin="100">
    <button id="btn">按钮</button>
  </vertical>
);
ui.btn.click(function () {
  toastLog("你点击了按钮");
});
hookOnClickListener(ui.btn);
function hookOnClickListener(view) {
  // 第一步:反射得到 ListenerInfo 对象
  // getListenerInfo = View.class.getDeclaredMethod("getListenerInfo");
  getListenerInfo = Class.forName("android.view.View").getDeclaredMethod("getListenerInfo");
  getListenerInfo.setAccessible(true);
  listenerInfo = getListenerInfo.invoke(view);
  // 第二步:得到原始的 OnClickListener事件方法
  listenerInfoClz = Class.forName("android.view.View$ListenerInfo");
  mOnClickListener = listenerInfoClz.getDeclaredField("mOnClickListener");
  mOnClickListener.setAccessible(true);
  // 第三步:用 Hook代理类 替换原始的 OnClickListener
  hookedOnClickListener = JavaAdapter(View.OnClickListener, {
    onClick: function (v) {
      toastLog("Hook Click Listener");
      log(v);
    },
  });
  mOnClickListener.set(listenerInfo, hookedOnClickListener);
}


参考

Android Hook 机制之简单实战

环境

手机: Mi 11 Pro

Android版本: 11

Autojs版本: 9.0.13


名人名言


思路是最重要的, 其他的百度, bing, stackoverflow, github, 安卓文档, autojs文档, 最后才是群里问问
--- 牙叔教程


声明


部分内容来自网络
本教程仅用于学习, 禁止用于其他用途

相关文章
|
数据安全/隐私保护
hook逆向autojs离线Dex加密的app(二)
hook逆向autojs离线Dex加密的app(二)
1577 0
hook逆向autojs离线Dex加密的app(二)
|
Android开发
autojs最近任务多界面
牙叔教程 简单易懂
989 0
|
Android开发
autojs控制台美化
牙叔教程 简单易学 使用场景 自定义控制台
1066 0
autojs-toast即时更新文本
autojs-toast即时更新文本
752 0
|
测试技术 Go Android开发
|
XML Java 开发工具
AAPT2简介
AAPT2简介
|
索引 Python
获取dataframe的第一行
在pandas中,可以使用`iloc`函数获取dataframe的第一行。以下是一个例子
1826 0
|
6月前
|
数据采集 Web App开发 JSON
从快手评论数据中挖掘舆情:Python爬虫与文本分析实战
从快手评论数据中挖掘舆情:Python爬虫与文本分析实战
|
分布式计算 Hadoop 程序员
ERROR util.Shell: Failed to locate the winutils binary in the hadoop binary path
ERROR util.Shell: Failed to locate the winutils binary in the hadoop binary path

热门文章

最新文章

下一篇
开通oss服务