美文网首页
Android动态打点

Android动态打点

作者: 编码丨沈川 | 来源:发表于2018-01-30 16:58 被阅读0次

背景

在Android中需要添加大数据埋点,统计用户操作行为

通常情况下,我们会在每个按钮的onClick()方法中埋点,为了减少代码耦合度,我们可以采用动态打点的方式埋点。

动态打点原理

通过分析Android系统View类的源码,发现 Android中View事件触发会调用:

sendAccessibilityEvent(int eventType)

该方法实现如下:

public void sendAccessibilityEvent(int eventType) {
    if (mAccessibilityDelegate != null) {
        mAccessibilityDelegate.sendAccessibilityEvent(this, eventType);
    } else {
        sendAccessibilityEventInternal(eventType);
    }

}

只要设置了代理就可以拦截View的Click事件。

View.AccessibilityDelegate具体说明请参考Android的开发者文档。

具体实现

在github中提供了项目源码:https://github.com/chuanshen/ClickTracker

实现步骤:

  1. 通过注解的方式绑定ViewId 和 EventId的关系(示例中在EventEnum中加入@DataId)

  2. 在ClickTracker中做事件拦截操作,当事件触发的时候会回调clickTracker(view, eventId);

  3. 继承ClickTracker并重写clickTracker(view, eventId)方法,实现自己的逻辑

相关文章

网友评论

      本文标题:Android动态打点

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