You need to enable JavaScript to run this app. 如何在Xamarin Forms中集成Firebase Performance Monitoring SDK
优惠活动
大模型
产品
解决方案
定价
更多

如何在Xamarin Forms中集成Firebase Performance Monitoring SDK

Xamarin.Forms 集成 Firebase Performance Monitoring 实现应用启动时间追踪方案

前置配置准备

  • 先在Firebase控制台创建对应Android、iOS应用,下载平台专属配置文件:Android端为google-services.json,iOS端为GoogleService-Info.plist
  • 将google-services.json放到Android平台项目根目录,生成操作设置为GoogleServicesJson
  • 将GoogleService-Info.plist放到iOS平台项目根目录,生成操作设置为BundleResource

平台SDK安装与初始化

Android平台配置

  • 安装NuGet包:Xamarin.Firebase.Perf
  • 在MainApplication.cs的OnCreate方法中完成初始化:
using Firebase.Perf;
// 开启性能采集
FirebasePerformance.Instance.SetPerformanceCollectionEnabled(true);

iOS平台配置

  • 安装NuGet包:Xamarin.Firebase.Performance
  • 在AppDelegate.cs的FinishedLaunching方法最开头完成初始化:
using Firebase;
using Firebase.Performance;
// 初始化Firebase核心
Firebase.Core.App.Configure();
// 开启性能采集
Performance.SharedInstance.PerformanceCollectionEnabled = true;

启动时间追踪实现

自动采集能力

Firebase Performance Monitoring默认会自动采集应用冷启动时长指标,你可以直接在Firebase控制台的性能面板查看app_start维度的统计数据,无需额外埋点即可获取基础的启动时间统计结果。

自定义埋点精准统计

如果需要自定义启动时间的统计范围(比如统计到首页渲染完成的时间),可以通过自定义Trace实现:

  1. 在Xamarin.Forms共享项目的App.xaml.cs中定义全局Trace变量:
// 可通过依赖服务、条件引用适配不同平台的Trace类型,也可直接定义为dynamic类型按需调用
public static dynamic AppStartTrace;
  1. 在应用进程启动的最早节点启动Trace:
    • Android端在MainApplication.OnCreate方法开头启动:
    App.AppStartTrace = FirebasePerformance.Instance.NewTrace("custom_app_start");
    App.AppStartTrace.Start();
    // 可选:添加自定义属性区分版本、设备等维度
    App.AppStartTrace.PutAttribute("app_version", Xamarin.Essentials.AppInfo.VersionString);
    
    • iOS端在AppDelegate.FinishedLaunching方法最开头启动:
    App.AppStartTrace = Performance.SharedInstance.NewTrace("custom_app_start");
    App.AppStartTrace.Start();
    // 可选:添加自定义属性
    App.AppStartTrace.PutAttribute("app_version", Xamarin.Essentials.AppInfo.VersionString);
    
  2. 在你认定的启动完成节点停止Trace:
    • 如果是传统导航页,在首页的OnAppearing方法中停止:
    protected override void OnAppearing()
    {
        base.OnAppearing();
        App.AppStartTrace?.Stop();
        App.AppStartTrace = null;
    }
    
    • 如果使用Shell作为导航容器,可以在Shell的OnNavigated事件中判断首次导航到根页面时停止,统计结果更准确。

注意事项

  • 调试阶段可查看平台控制台日志确认Trace上报状态,避免埋点错误
  • 性能数据上报存在延迟,通常10-15分钟后才能在Firebase控制台看到统计结果
  • 不要重复启停同一个Trace实例,避免上报数据异常
  • 如果需要区分冷启动、热启动,可以在启动Trace时添加对应属性标记

内容的提问来源于stack exchange,提问作者Nagaraj S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.19 22:54:07