本文介绍如何为移动分析添加性能日志。
移动分析接入 Android 的性能日志包括:
启动速度日志
卡顿日志
卡死日志
您可以在 mPaaS 控制台 > 移动分析 > 基础分析 中查看启动速度指标;在 mPaaS 控制台 > 移动分析 > 性能分析 中查看卡顿、卡死报告。
启动速度埋点
应用启动时长 = 调用该方法的时刻 - 应用开始启动的时刻。
推荐在首页 Activity
的 onCreate()
方法中调用如下方法启动速度埋点。
MPLogger.reportLaunchTime(Context context);
卡顿埋点
卡顿的定义为 Android 主线程超过 2.25 秒 仍未执行完一个方法。卡顿阈值因 APK 包类型而异:
APK 为 debug 包时,卡顿阈值为 0.75 秒,以便调试时快速发现潜在的卡顿问题。
APK 为 release 包时,卡顿阈值为 2.25 秒。
开启卡顿监控
方式一
界面需要继承 mPaaS 提供的 BaseActivity
、BaseFragmentActivity
或 BaseAppCompatActivity
类,凡是继承了这些类的界面都会自动监控卡顿。
方式二
重要
该方式仅在基线 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 秒。
要开启卡死监控,详情请参考上文卡顿埋点中的 开启卡顿监控。