Android全埋点解决方案--读书笔记1

推荐书籍《Android全埋点解决方案》 作者:王灼洲

推荐序:为了实现对数据的采集,可以使用三种方式:代码埋点、工具导入和全埋点。这三种方式都是手段,并且各有优缺点,选择需要完全基于实际的业务需求和现状来设计。埋点方式多种多样,按照埋点位置不同,可以分为前端(客户端)埋点与后端(服务器端)埋点。其中全埋点是目前较为留下的前端埋点方式之一。全埋点采用“全部采集,按需选取”的形式,对页面中所有交互元素的用户行为进行采集,通过界面配置来决定哪些数据需要进行分析。

第一章:全埋点,也叫雾霾点、无码埋点、无痕埋点、自动埋点。全埋点是指无需Android应用程序开发工程师写代码或者只写少量代码,就能预先自动收集用户的素有行为数据,然后就可以根据实际的业务分析需求从中筛选出所需行为数据并进行分析。

全埋点采集的时间目前主要包括以下四种,(事件名称前面$符号),是指该事件是预置事件,与之对应的自定义事件:

$AppStart事件 指应用程序启动,同时包括冷启动和热启动场景。热启动也就是应用程序从后台恢复的情况。

$AppEnd事件 是指应用程序退出,包括应用程序的正常退出、按Home键进入后台、应用程序被强杀、应用程序崩溃等场景。

$AppViewScreen事件 是指应用程序页面浏览,对于Android应用程序来说,就是指切换Activity或Fragement。

$AppClick事件 是指应用程序控件点击,也即View被点击,比如点击Button、ListView等。在采集的这四种事件当中,最重要并且采集难度最大的是$AppClick事件。所以全埋点的解决方案基本上也都是围绕着如何采集$AppClick事件来进行的。

对于$AppClick事件的全埋点整体解决思路,归根到底,就是要自动找到那个被点击的控件处理逻辑,然后再利用一定的技术原理,对原处理逻辑进行“拦截”,或者在原处理逻辑的执行前面或执行者后面“插入”相应的埋点代码逻辑,从而达到自动埋点的效果。

选择全埋点的解决方案,需要从效率、兼容性、拓展性等方面进行综合考虑:

1、效率 利用某些技术对某些方法(控件被点击时的处理逻辑)进行拦截(或者叫代理)或者“插入”相关埋点代码:

  •         静态代理

通过Gradle Plugin在应用程序变异期间“插入”代码或者修改代码(.class文件)。比如AspectJ、ASM、Javassist、AST等方案均属于这种方式。

  •         动态代理

在代码运行时候(Runtime)取进行代理。比如我们比较场景的代理:View.OnClickListener、Window.Callback\View.AccessibilityDelegate 等方案均属于这种方式。从总体上来说,静态代理明星由于动态代理。

2、兼容性

3、拓展性

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值