tencent cloud

文档反馈

启动监控

最后更新时间:2024-05-14 12:36:06
    启动监控需要使用 qapm-plugin 插件在编译期间进行插桩操作,默认插桩点为 Application 与 Activity 的各个生命周期。在 App SDK 统计默认的启动耗时为 Application 的 attachBaseContext 到第一个 Activity 的 onResume 结束。

    前提条件

    在 App 级别的 build.gradle 中配置了 qapm-plugin 插件。

    配置步骤

    1. 需要手动添加一个 Application 的子类,例如 BaseApplication(名称不作要求,子类可以不用实现任何方法,可以不用添加任何属性)。
    2. 在 AndroidManifest.xml 文件的 application 的节点添加 android:name 属性,属性的 value 为“包名+Application 子类的类名”。
    
    
    

    额外打点

    如果想统计启动区间内的某些方法的耗时,则需要额外的打点,示例如下:
    
    
    
    参见代码:
    QAPM.beginScene(StageConstant.QAPM_APPLAUNCH, "xxx方法名", QAPM.ModeResource);
    /**业务逻辑*/
    QAPM.endScene(StageConstant.QAPM_APPLAUNCH, "xxx方法名", QAPM.ModeResource);
    如果想自定义启动的结束点,则需要在第一个 Activity 调用 onResume 的20s内额外打点,示例如下:
    
    
    
    参见代码:
    /**
    * 需要自定义结束点的用户需要在onResume之后的20s内,否则以APM的结束点为准
    */
    QAPM.endScene(StageConstant.QAPM_APPLAUNCH, QAPM.ModeResource);

    校验功能是否正常

    每次启动后20s或者切换到后台,如打印以下日志,则代表启动指标数据上报成功。
    检索 TAG: [plugin::114]
    
    
    
    注意:
    需要使用 qapm-plugin 插件进行插桩才可用,并且需要手动增加一个 Application 的子类。否则无效。
    启动总耗时大于2.5s才会上报个例数据。
    启动的问题数据可以在 终端性能监控 > 启动 > 问题列表 查看。

    计算方式

    冷启动:

    应用自设备启动后或系统终止应用后的首次启动。
    Android 计算方式:mainActivityOnResume_end - attachBaseContext_start。
    iOS 计算方式:第一个页面首帧 UI 上屏时间 - 应用进程创建时间。

    首次启动:

    应用安装后第一次启动,是特殊的冷启动。
    Android 计算方式:mainActivityOnResume_end - attachBaseContext_start
    iOS 计算方式:第一个页面首帧 UI 上屏时间 - 应用进程创建时间。

    热启动:

    在进程及Activity实例还存在(iOS 是在应用在后台且存活)的前提下,应用切后台三分钟后,再次切回前台,定义为热启动。
    Android 计算方式:activityOnResume_end - activityOnRestart_start。
    iOS 计算方式:ApplicationDidBecomeActive - ApplicationWillEnterForeground。

    启动耗时:

    总启动耗时/总启动次数
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持