Android-全自动埋点方法论-下

2022-04-29  本文已影响0人  AnonyPer

前面提到了全自动埋点的范围和方法,这个章节主要记录一下关于点击事件采集的相关方法论。

Android开发基础知识

需要先说明几个基础的知识,这样对于无码采集的方法论理解就更清晰,这也是做一个事情分析的逻辑。

Android事件机制

每一个应用有一个Application,每一个Application有多个Activity,一个Activity下有一个PhoneWindow,一个PhoneWindow下有DecorView,一个DecorView下的content就是我们开发的展示给用户的界面。一个界面由ViewGroup和View组成。借用一张经典的图:


image.png

我们设置的点击事件是在ViewGroup/View上设置类似setOnClicklistener来实现。
Android的事件分发机制简单来说会从Activity自上而下分发,然后看中间是否有消费的,具体不细说了。

采集方法一 - AOP技术

通过上述Android开发基础知识,我们应该就能想到这个方法,本身用户行为采集也是从切面去处理的,所以AOP技术的应用就自然而然了。
我们从构建流程往下分析,看一看AOP都有几种方式实现:

采集方法二 - 代理

这个方法在我们分析Android屏幕组成和事件分发机制那块可以想到的,既然可以通过一系列方法获取到窗口的各个对象(Activity、PhoneWindow、View),加上事件的分发机制,所以我们可以罗列一下相应的采集手段。

无码采集方法对比

其他问题

前面也提到了,全自动埋点数据量比较到,会采集很多数据,所以怎么样减少无效数据的采集也是摆在全自动采集方案中需要解决的一个问题。
同时还有另一个问题,全自动采集本身和业务关联不大,那么就需要通过技术手段为每一个元素view设置一个唯一的标识,而通过技术手段生成的唯一标识在业务人员看起来肯定无法理解(采集数据最终是给到业务人员使用的),所以这就是第二个需要解决的问题。
上面这两个问题有技术手段一并解决,业内通常的叫法就叫做圈选埋点,通过可视化全选的方式控制那些界面采集,那些界面不采集,以及可以给界面和元素生成业务可以理解的映射字段,这个样子也就让全埋点具体操作权放到业务运营人员手里了,由他们自行来处理。这方面的技术手段以及上述游离态控件的采集有时间再做统一的介绍。

上一篇 下一篇

猜你喜欢

热点阅读