Flutter性能监控插件ve_apm的使用

Flutter性能监控插件ve_apm的使用

ve_apm 是一个用于 Flutter 应用性能和稳定性监控的工具。通过它,开发者可以实时了解应用的性能表现,并快速定位问题。

使用步骤

以下是 ve_apm 的基本使用步骤及完整示例代码。

1. 导入依赖

首先,在项目中添加 ve_apm 依赖。在 pubspec.yaml 文件中添加以下内容:

dependencies:
  ve_apm: ^版本号

然后执行 flutter pub get 安装依赖。

2. 初始化 ve_apm

main 函数中进行初始化。runAppWithoutTracestartVeApmTrace 分别用于控制是否上报性能监控日志。

import 'dart:io';

import 'package:flutter/material.dart';
import 'package:ve_apm/ve_apm.dart';

import 'common/router.dart';
import 'pages/home_page.dart';

void main() {
  // 不上报性能监控日志
  runAppWithoutTrace((NavigatorObserver observer) {
    HttpOverrides.global = ApmHttpOverrides();
    enableVeApmLog(true);  // 控制台日志开关,默认为 true
    return MyApp(observer);
  }, bindingInitHandler: CustomFlutterBinding.ensureInitialized);

  // 开始上报性能监控日志
  startVeApmTrace();

  // 初始化 Native SDK(根据实际情况决定是否调用)
  final VeApmNativeConfig config = VeApmNativeConfig('233805', '4f16428f37ab45f088b6316dab561767');
  config.channel = 'flutter';
  config.enableConsoleLog = true;
  final VeApmNativeHelper nativeHelper = VeApmNativeHelper(config);
  nativeHelper.start();
  nativeHelper.setUserID('userID');
  // (仅 iOS) 如果需要调用此方法设置自定义 deviceID,请配置 VeApmNativeHelper.config.iosConfig.deviceIDSource 设置为 user
  // nativeHelper.setDeviceID('deviceID');
}

3. 自定义 Flutter Binding

为了更好地集成 ve_apm,可以通过扩展 ApmWidgetsFlutterBinding 来实现自定义逻辑。

mixin MixinFlutterBinding on ApmWidgetsFlutterBinding {
  [@override](/user/override)
  void initInstances() {
    super.initInstances();
    print('MixinFlutterBinding initInstances');
  }

  [@override](/user/override)
  void handleAppLifecycleStateChanged(AppLifecycleState state) {
    super.handleAppLifecycleStateChanged(state);
    print('MixinFlutterBinding handleAppLifecycleStateChanged');
  }
}

class CustomFlutterBinding extends ApmWidgetsFlutterBinding
    with MixinFlutterBinding {
  static WidgetsBinding? ensureInitialized() {
    // if (WidgetsBinding.instance == null) {
      CustomFlutterBinding();
    // }
    return WidgetsBinding.instance;
  }
}

4. 创建应用入口

最后,创建应用入口并配置路由和导航观察器。

class MyApp extends StatefulWidget {
  const MyApp([this._navigatorObserver]);

  final NavigatorObserver? _navigatorObserver;

  [@override](/user/override)
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
        visualDensity: VisualDensity.adaptivePlatformDensity,
        useMaterial3: false
      ),
      home: HomePage(),
      navigatorObservers: [
        widget._navigatorObserver ?? ApmNavigatorObserver.instance
      ],
      routes: generateRoutes(), // 自定义路由生成函数
    );
  }
}

更多关于Flutter性能监控插件ve_apm的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter性能监控插件ve_apm的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


ve_apm 是一个用于 Flutter 应用的性能监控插件,它可以帮助开发者监控应用的性能指标,如帧率、内存使用、CPU 使用率等。以下是如何在 Flutter 项目中使用 ve_apm 插件的步骤。

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 ve_apm 插件的依赖。

dependencies:
  flutter:
    sdk: flutter
  ve_apm: ^1.0.0  # 请使用最新版本

然后运行 flutter pub get 来获取依赖。

2. 初始化 ve_apm

在你的 Flutter 项目中,通常在 main.dart 文件中初始化 ve_apm

import 'package:flutter/material.dart';
import 'package:ve_apm/ve_apm.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化 ve_apm
  await VeApm.init(
    appKey: 'your_app_key',  // 替换为你的 App Key
    channel: 'release',      // 渠道,如 'debug', 'release'
    enableLog: true,         // 是否开启日志
  );

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

3. 监控性能指标

ve_apm 会自动监控一些性能指标,如帧率、内存使用、CPU 使用率等。你可以在需要的地方手动记录事件或自定义监控。

记录自定义事件

你可以在代码中记录自定义事件,以便在性能监控中查看。

import 'package:ve_apm/ve_apm.dart';

void someFunction() {
  // 记录自定义事件
  VeApm.trackEvent('some_function_started', {'param1': 'value1'});

  // 执行一些操作

  // 记录事件结束
  VeApm.trackEvent('some_function_ended', {'duration': '100ms'});
}

监控网络请求

ve_apm 还可以监控网络请求的性能。你可以使用 VeApmHttpOverrides 来拦截网络请求。

import 'dart:io';
import 'package:ve_apm/ve_apm.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化 ve_apm
  await VeApm.init(
    appKey: 'your_app_key',
    channel: 'release',
    enableLog: true,
  );

  // 设置网络请求拦截
  HttpOverrides.global = VeApmHttpOverrides();

  runApp(MyApp());
}

4. 查看性能数据

ve_apm 会将性能数据上传到后端服务器,你可以通过 ve_apm 提供的管理后台查看应用的性能数据。

5. 其他配置

ve_apm 还支持更多的配置选项,如设置采样率、自定义上报 URL 等。你可以根据需要在初始化时进行配置。

await VeApm.init(
  appKey: 'your_app_key',
  channel: 'release',
  enableLog: true,
  sampleRate: 0.5,  // 采样率,0.5 表示 50% 的数据会被上报
  reportUrl: 'https://your-custom-report-url.com',  // 自定义上报 URL
);
回到顶部