Android全埋点解决方案
(副标题):无 ;
(作者): 王灼洲(神策数据) ;
内容简介:
第1章 全埋点概述
全埋点,也叫无埋点、无码埋点、无痕埋点、自动埋点。全埋点是指无须Android应用程序开发工程师写代码或者只写少量的代码,就能预先自动收集用户的所有行为数据,然后就可以根据实际的业务分析需求从中筛选出所需行为数据并进行分析。
全埋点采集的事件目前主要包括以下四种(事件名称前面的$符号,是指该事件是预置事件,与之对应的是自定义事件)。
·$AppStart事件
是指应用程序启动,同时包括冷启动和热启动场景。热启动也就是指应用程序从后台恢复的情况。
·$AppEnd事件
是指应用程序退出,包括应用程序的正常退出、按Home键进入后台、应用程序被强杀、应用程序崩溃等场景。
·$AppViewScreen事件
是指应用程序页面浏览,对于Android应用程序来说,就是指切换Activity或Fragment。
·$AppClick事件
是指应用程序控件点击,也即View被点击,比如点击Button、ListView等。
在采集的这四种事件当中,最重要并且采集难度最大的是$AppClick事件。所以,全埋点的解决方案基本上也都是围绕着如何采集$AppClick事件来进行的。
对于$AppClick事件的全埋点整体解决思路,归根结底,就是要自动找到那个被点击的控件处理逻辑(后文统称原处理逻辑),然后再利用一定的技术原理,对原处理逻辑进行“拦截”,或者在原处理逻辑的执行前面或执行者后面“插入”相应的埋点代码逻辑,从而达到自动埋点的效果。
至于如何做到自动“拦截”控件的原处理逻辑,一般都是参考Android系统的事件处理机制来进行的。关于Android系统的事件处理机制,本书由于篇幅有限,不再详述。
至于如何做到自动“插入”埋点代码逻辑,基本上都是参考编译器对Java代码的整体处理流程来进行的,即:
JavaCode --> .java
目录预览:
Android全埋点解决方案
第1章 全埋点概述
1.1 Android View类型
1.2 View绑定listener方式
第2章 $AppViewScreen全埋点方案
2.1 关键技术Application.ActivityLifecycleCallbacks
2.2 原理概述
2.3 案例
2.4 完善方案
2.5 扩展采集能力
第3章 $AppStart、$AppEnd全埋点方案
3.1 原理概述
3.2 案例
3.3 缺点
第4章 $AppClick全埋点方案1:代理View.OnClickListener
4.1 关键技术
4.2 原理概述
4.3 案例
4.4 引入DecorView
4.5 引入ViewTreeObserver.OnGlobalLayoutListener
........