在不侵入业务代码的情况下监听所有的点击事件并记录所有的点击数,用于统计热点页面和其他一些分析工作,
介绍一个如何Hook掉View的onClick方法
第一步寻找Hook点
setOnClickListener做了那些动作:
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
public void setOnClickListener(@Nullable OnClickListener l) {
if (!isClickable()) {
setClickable(true);
}
getListenerInfo().mOnClickListener = l;
}
ListenerInfo getListenerInfo() {
if (mListenerInfo != null) {
return mListenerInfo;
}
mListenerInfo = new ListenerInfo();
return mListenerInfo;
}<