如何在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实现:
- 在Xamarin.Forms共享项目的
App.xaml.cs中定义全局Trace变量:
// 可通过依赖服务、条件引用适配不同平台的Trace类型,也可直接定义为dynamic类型按需调用 public static dynamic AppStartTrace;
- 在应用进程启动的最早节点启动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); - Android端在
- 在你认定的启动完成节点停止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
相关产品推荐
相关产品推荐

