頁面瀏覽事件之 $AppViewScreen 全埋點
$AppViewScreen 事件,即頁面瀏覽事件。 在 Android 系統中,頁面瀏覽,其實就是指切換不同的 Activity。那對於一個 Activity,哪個生命週期執行了代表該頁面顯示出來了呢?通過對 Activity 的生命週期瞭解可知,其實就是 onResume 生命週期。
Application.ActivityLifecycle- Callbacks
ActivityLifecycleCallbacks 是 Application 的一個內部介面,從 API 14 開始提供的。Application 通過此介面提供了一套回撥方法,用於讓開發者可以對 Activity 的所有生命週期事件進行集中處理(或者叫監控)。可以通過 application.registerActivityLifecycleCallback 註冊 ActivityLifecycleCallbacks。
Application.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 activ- ity, Bundle outState);
} void onActivityDestroyed(Activity activity);
以 onResume(Activity activity) 為 例,如 果 注 冊 了 ActivityLifecycleCallbacks,Android 系 統 會 先 回 調 ActivityLifecycleCallbacks 的 onActivityResumed 方 法, 然後再執行 Activity 本身的 onResume 函式 ( 請注意這個 調 用 順 序 ) 。通 過 registerActivityLifecycleCallback 方 法名中的“register”字樣可以知道,一個 Application 是 可 以 register 多 個 ActivityLifecycleCallbacks 的,通 過 registerActivityLifecycleCallback 的內部實現也可以證實這一點。
public void registerActivityLifecycleCallbacks (ActivityLifecycleCallbacks callback) {
{ synchronized (mActivityLifecycleCallbacks) back); mActivityLifecycleCallbacks.add(call- }}
原理概述
在應用程式自定義的 Application 物件的 onCreate() 方法中初始化埋點 SDK, 並傳入當前的 Application 物件。SDK 拿到 Application 物件之後,通過 registerActivityLifecycleCallback 方法註冊 Application.ActivityLifecycleCall- backs。這樣 SDK 就能對 App 中所有的 Activity 的生命週期事件進行集中處理 (監控)了。在註冊的 Application.ActivityLifecycleCallbacks 的 onActivityRe- sumed 回撥方法中,我們可以拿到當前正在顯示的Activity物件,然後呼叫 SDK 的相關介面觸發頁面瀏覽事件即($AppViewScreen)。
實現步驟
完整的專案原始碼後續會 release 給大家。
缺點
註冊 Application.ActivityLifecycleCallbacks 要求 API 14+ 。
知識點
Application.ActivityLifecycleCallbacks
注:該內容來自神策資料使用者行為洞察研究院出品的《Android 全埋點解決方案》白皮書,檢視完整白皮書可點選 ofollow,noindex" target="_blank">《Android 全埋點解決方案》
更多白皮書、報告、乾貨和案例,可以關注“神策資料”和“使用者行為洞察研究院”公眾號瞭解~