最近在做埋点的SDK,这里记录一些思路方案和踩的坑,希望对其他小伙伴有所帮助~
Android端全埋点方案:
首先这里感谢神策的开源项目,在开发之前,重点阅读了神策出版的Android全埋点书籍,整理了很多知识点。
这里说的全埋点是指自动统计设置监听事件的的所有点击,页面的PV/UV以及应用程序使用的生命周期等。以下是本人根据书籍整理的一些大致知识点,具体的讲解和示例大家还是移步书籍。
1、APPClick
一:代理View.OnClickListner 遍历View获取监听器然后代理插入埋点
问题: 不同组件绑定的点击监听器不同
绑定监听器的方式不同:setOn,XmlOnClick,ButterKnife,DataBinding(AspectJ无法支持lambda语法的点击事件)
OnResume生命周期之后动态创建的View
Dialog,popupWindow,BehaviorBottomSheet等游离于Activity之上的View需要额外处理
方案: 自定义Listener代理OnClickListener,获取DecorView遍历ViewTree找到设置了点击监听的View,代理监听器
ViewTre