全部產品
Search
文件中心

Mobile Platform as a Service:效能日誌

更新時間:Jul 27, 2024

本文介紹如何為移動分析添加效能日誌。

移動分析接入 Android 的效能日誌包括:

  • 啟動速度日誌

  • 卡頓日誌

  • 卡死日誌

您可以在 mPaaS 控制台 > 移動分析 > 基礎分析 中查看啟動速度指標;在 mPaaS 控制台 > 移動分析 > 效能分析 中查看卡頓、卡死報告。

啟動速度埋點

應用啟動時間長度 = 調用該方法的時刻 - 應用開始啟動的時刻。

推薦在首頁 ActivityonCreate() 方法中調用如下方法啟動速度埋點。

MPLogger.reportLaunchTime(Context context);

卡頓埋點

卡頓的定義為 Android 主線程超過 2.25 秒 仍未執行完一個方法。卡頓閾值因 APK 包類型而異:

  • APK 為 debug 包時,卡頓閾值為 0.75 秒,以便調試時快速發現潛在的卡頓問題。

  • APK 為 release 包時,卡頓閾值為 2.25 秒。

開啟卡頓監控

方式一

介面需要繼承 mPaaS 提供的 BaseActivityBaseFragmentActivityBaseAppCompatActivity類,凡是繼承了這些類的介面都會自動監控卡頓。

方式二

重要

該方式僅在基準 10.2.3.50 及以上版本支援。

Activity的生命週期方法中手動調用相關介面,例如:

import android.app.Activity;
import android.app.Application;
import android.os.Bundle;

import com.mpaas.mas.adapter.api.MPLogger;

public class MPLifecycle implements Application.ActivityLifecycleCallbacks {

    private int mVisibleActivityCount = 0;
    private boolean isBackground = false;

    @Override
    public void onActivityCreated(Activity activity, Bundle bundle) {

    }

    @Override
    public void onActivityStarted(Activity activity) {
        mVisibleActivityCount++;
        if (isBackground) {
            isBackground = false;
            // 應用回到前台時調用
            MPLogger.monitorAppForeground();
        }
    }

    @Override
    public void onActivityResumed(Activity activity) {
        // 更新 Activity 上下文
        MPLogger.monitorActivityResumed(activity);
    }

    @Override
    public void onActivityPaused(Activity activity) {
    }

    @Override
    public void onActivityStopped(Activity activity) {
        mVisibleActivityCount--;
        if (mVisibleActivityCount <= 0) {
            isBackground = true;
            // 應用退到後台時調用
            MPLogger.monitorAppBackground();
        }
    }

    @Override
    public void onActivitySaveInstanceState(Activity activity, Bundle bundle) {
    }

    @Override
    public void onActivityDestroyed(Activity activity) {
    }

}

當 APK 為 debug 包時,卡頓監控為全量統計;APK 為 release 包時,卡頓監控為採樣統計,採樣率為 10%。

卡死埋點

卡死即 Android 系統的 ANR,通常情況下指主線程無回應時間 超過 5 秒

要開啟卡死監控,詳情請參考上文卡頓埋點中的 開啟卡頓監控