Android 全埋点解决方案 (6):$AppViewScreen 全埋点方案 2.2

阅读数:6 2019 年 11 月 30 日 22:55

Android全埋点解决方案(6):$AppViewScreen全埋点方案 2.2

(原理概述)

内容简介
这是一本实战为导向的、翔实的 Android 全埋点技术与解决方案手册,是国内知名大数据公司神策数据在该领域多年实践经验的总结。由神策数据合肥研发中心负责人亲自执笔,他在 Android 领域有近 10 年研发经验,开发和维护着知名的商用开源 Android & iOS 数据埋点 SDK。
本书详细阐述了 Android 全埋点的 8 种解决方案,涵盖各种场景,从 0 到 1 详解技术原理和实现步骤,并且提供完整的源代码,各级研发工程师均可借此实现全埋点数据采集,为市场解开全埋点的神秘面纱。
8 种 Android 全埋点解决方案包括:
AppClick 全埋点方案 1:代理 View.OnClickListener、
AppClick 全埋点方案 2:代理 Window.Callback
AppClick 全埋点方案 3:代理 View.AccessibilityDelegate
AppClick 全埋点方案 4:透明层
AppClick 全埋点方案 5:AspectJ
AppClick 全埋点方案 6:ASM
AppClick 全埋点方案 7:Javassist
AppClick 全埋点方案 8:AST

实现 Activity 的页面浏览事件,大家首先想到的是定义一个 BaseActivity,然后让其他 Activity 继承这个 BaseActivity。这种方法理论上是可行的,但不是最优选择,有些特殊的场景是无法适应的。比如,你在应用程序里集成了一个第三方的库(比如 IM 相关的),而这个库里恰巧也包含 Activity,此时你是无法让这个第三方的库也去继承你的 BaseActivity(最起码驱使第三方服务商去做这件事的难度比较大)。所以,为了实现全埋点中的页面浏览事件,最优的方案还是基于我们上面讲的 Application.ActivityLifecycleCallbacks。

不过,使用 Application.ActivityLifecycleCallbacks 机制实现全埋点的页面浏览事件,也有一个明显的缺点,就是注册 Application.ActivityLifecycleCallbacks 回调要求 API 14+。

在应用程序自定义的 Application 类的 onCreate() 方法中初始化埋点 SDK,并传入当前的 Application 对象。埋点 SDK 拿到 Application 对象之后,通过调用 Application 的 registerActivityLifecycleCallback(ActivityLifecycleCallbacks callback) 方法注册 Application.ActivityLifecycleCallbacks 回调。这样埋点 SDK 就能对当前应用程序中所有的 Activity 的生命周期事件进行集中处理(监控)了。在注册的 Application.ActivityLifecycleCallbacks 的 onActivityResumed(Activity activity) 回调方法中,我们可以拿到当前正在显示的 Activity 对象,然后调用 SDK 的相关接口触发页面浏览事件($AppViewScreen)即可。

Android全埋点解决方案(6):$AppViewScreen全埋点方案 2.2

购书地址 https://item.jd.com/12574672.html?dist=jd

评论

发布