全埋点
全埋点也叫无埋点,自动埋点。是指预先自动收集用户的所有行为数据。然后就可以根据收集的数据从中筛选出所需的行为数据进行分析。
采集的事件类型
全埋点采集的事件主要包括以下4种类型:
AppStart事件
指应用程序的启动,它包括冷启动和热启动。
AppEnd事件
指应用程序退出,它包括了应用程序的正常退出、Home键进入后台、应用程序被强杀以及应用程序崩溃。
AppViewScreen事件
指应用程序页面浏览,对于Android应用程序来说就是指Activity或Fragment的切换。
AppClick事件
指应用程序控件的点击事件,也就是View的点击事件。
AppViewScreen全埋点方案
页面浏览事件就是指切换不同的Activity或Fragment,对于一个Activity来说它的onResume()
方法执行,就代表该页面已经显示出来了,即该页面被浏览。所以我们只需要自动在onResume()
方法中实现处理AppViewScreen事件相关的代码,即可解决AppViewScreen事件的全埋点。
Application.ActivityLifecycleCallbacks
ActivityLifecycleCallbacks
是Application
的一个内部接口,是从API14(Android4.0)开始提供的。Application
类通过此接口提供了一系列的回调方法,用于让开发者可以对Activity
的所有生命周期事件进行集中的处理。我们可以通过** Application**提供的registerActivityLifecycleCallbacks
方法来注册ActivityLifecycleCallbacks
回调。
下面先看一下该接口中都提供了哪些方法:
public interface ActivityLifecycleCallbacks {
void onActivityCreated(Activity activity, Bundle savedInstanceState);
void onActivityStarted(Activity activity);
void onActivityResumed(Activity activity);
void onActivityPaused(Activity activity);
void onActivityStopped(Activity activity);
void onActivitySaveInstanceState(Activity activity, Bundle outState);
void onActivityDestroyed(Activity activity);
}
以Activity的onResume()
方法为例,如果我们注册了该接口,Android系统会先回调ActivityLifecycleCallbacks的onActivityResumed(Activity activity)
方法,然后再执行Activity本身的onResume()
方法。(注意:一个Application是可以注册多个ActivityLifecycleCallbacks回调的)
除了使用该方法,我们可能还会想到定义一个BaseActivity,然后让其他的Activity继承这个BaseActivity。但是这样会有一个问题。如果我们在应用中集成了一些第三方库,并且我们用到了三方库中的Activity,此时我们是无法监控该页面的浏览事件的。因为我们无法让它去继承我们自定义的BaseActivity。所以我们采用Application.ActivityLifecycleCallbacks,不过该方案需要API14+,不过现在主流的机型都已经满足了。
代码实战
1.定