android控件自动化埋点统计

          android控件自动化埋点统计

想到应用统计,平时我们使用的一般都是第三方的,比如百度统计,友盟统计,这几天公司要做自己的统计,于是乎也找了一些自动化埋点的博文学习使用。最后会给出参考链接,非常感谢。

现有的几种埋点技术的实现原理和优劣分析

 1.代码埋点:将收集数据的代码直接写在需要的地方,当用户点击某个控件或者打开某个页面时调用到该部分代码完成数据的收集。
  优势:准确性高,收集数据和发送数据都能精确控制,同时能方便的设置自定义属性,自定义控件,自定义View等。
  劣势:埋点工作量大,更新代价大。
 2.可视化埋点:根据配置文件收集用户行为,从而获取数据进行分析。
  优势:无须手动埋点,配置文件可动态更新。
  劣势:配置文件的配置比较耗时,弹出框,隐藏控件等行为不能收集。收集的数据比较简单,只能收集用户行为,不能收集到与行为相关的具体数据。
 3.无埋点:与可视化埋点基本一致。不同点在于可视化埋点是根据配置文件收集数据,无埋点是预先收集所有的用户行为,然后根据 配置文件来提取数据。无埋点可以通过修改配置文件追溯之前的用户行为数据。
 4.后端埋点:Sensors Analytics 这个平台有解决方案,优点是能收集到详细的与行为相关的数据,适用于电商等大平台。比如用户选择了一件商品,点击了加入购物车,那么可以收集到用户信息,商品信息,商品价格,商品库存,卖家等诸多信息。
 

埋点技术的选择

 1.代码埋点:既可以自己与后台定义接口,也可以使用第三方,常用的有友盟,百度统计等。
 2.可视化埋点和无埋点:移动端可以自己实现数据采集。第三方有诸葛IO,GrowingIO 。在知乎上查了关于这两个平台的信息,GrowingIO隐藏收费,官网并没有说到收费,但是使用15天后发邮件通知收费并停止数据采集和分析。诸葛IO免费模式的数据量是每月200万条,还有其他收费模式。
 3.后端埋点:Sensors Analytics

方案采用

 根据公司的需求以及对app的规模,只需实现控件按钮点击事件的监听,但是对控件的点击事件处都添加代码,工作量是有点大,所以我们采用控件自动化埋点的方法来统计,只需在BaseActvity中重写dispatchTouchEvent,在xml布局中给需要统计点击事件的控件添加tag标签即可,并不需要在每一个OnClickListener的地方加入拦截代码。

什么是自动化埋点

就是将界面的打开、关闭以及控件点击的log记录放到统一的地方去处理,而不用在许多业务逻辑中加入log代码。这块统一的监控代码需要做到如下的事情:
1.可以监控到界面打开或者关闭,并将这种操作记录到log中
2.当界面上的有控件被点击的时候,可以监控到哪个界面哪个控件被点击了,并将这些操作信息记录到log中
3.要能实现埋点的定制,即对需要埋点的控件或者界面才记录它们的操作log

原理解析

创建BaseActivity基类,实现控件的点击监听,根据UI布局的特性和Android点击事件传递机制实现。让创建的BaseActivity基类重写Activity的dispatchTouchEvent,当touch button时,获取到按下和抬起产生的MotionEvent对象,从而通过getRawX()和getRawY()方法获取到点击位置在界面中的坐标,然后搜索所有子view或者控件的布局区域示范包含点击位置,从而判断那个view或控件被点击了,再通过getTag()获取到我们控件的标签。

1.首选在我们的application中设置启动自动埋点

private void setAutoClickHook() {
    BehaviorUtil.setAutoCollectEvent(true);
    BehaviorUtil.setToastAutoCollectEvent(true);
}

2.然后在onAttachedToWindow()方法,该方法是在onResumed()方法之后,当view和window绑定的时候就会调用该方法,在该方法中我们通过getWindow().getDecorView()方法获取到根节点view的对象。
@Override
public void onAttachedToWindow() {
    super.onAttachedToWindow();
    //获取到根节点的view
    rootView = getWindow().getDecorView();
    //控件在视图树上的根路径
    rootViewTree = getPackageName() + "." + getClass().getSimpleName();
    //前缀名 bigData
    bigDataPrefix = get
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值