页面浏览事件之 $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 全埋點解決方案》白皮書,查看完整白皮書可點擊《Android 全埋點解決方案》
更多白皮書、報告、干貨和案例,可以關注“神策數據”和“用戶行為洞察研究院”公眾號了解~?
總結
以上是生活随笔為你收集整理的页面浏览事件之 $AppViewScreen 全埋点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 妈妈帮×神策智能推荐,打造人性化智趣母婴
- 下一篇: 深入浅出理解神经网络召回模型的优势