Flutter性能监控插件oneapm_flutter_plugin的使用

Flutter性能监控插件oneapm_flutter_plugin的使用

oneapm_flutter_plugin

oneapm_flutter_plugin 是一个用于Flutter应用性能监控的插件项目。

获取开始

此项目是一个Flutter插件包的起点,类似于Flutter插件包,它包含了针对Android和/或iOS平台的特定实现代码。

对于如何开始使用Flutter,您可以查看Flutter官方文档,其中包含教程、示例、移动开发指南以及完整的API参考。


使用示例

以下是一个完整的示例代码,展示了如何在Flutter应用中使用oneapm_flutter_plugin插件进行性能监控。

示例代码

import 'dart:developer';

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

import 'package:flutter/services.dart';
import 'package:oneapm_flutter_plugin/oneapm_flutter_plugin.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatefulWidget {
  [@override](/user/override)
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  String _platformVersion = 'Unknown';
  String _sdkVersion = '0.0.00';

  [@override](/user/override)
  void initState() {
    super.initState();
    initPlatformState();
  }

  // 初始化平台状态
  Future<void> initPlatformState() async {
    String platformVersion;
    String sdkVersion;

    try {
      // 获取平台版本
      platformVersion = await OneapmFlutterPlugin.platformVersion ?? 'Unknown platform version';
    } on PlatformException {
      platformVersion = 'Failed to get platform version.';
    }

    try {
      // 获取SDK版本
      sdkVersion = await OneapmFlutterPlugin.getSDKVersion ?? 'Unknown platform version';
      print('OneapmFlutterPlugin.getSDKVersion11: $sdkVersion');
    } on PlatformException {
      sdkVersion = 'Failed to get platform version.';
    }

    // 如果小部件从树中移除,则丢弃回复
    if (!mounted) return;

    setState(() {
      _platformVersion = platformVersion;
      _sdkVersion = sdkVersion;
    });
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('OneAPM Plugin example'),
        ),
        body: ListView(
          children: <Widget>[
            // 显示平台版本
            ListTile(
              title: Text('Running on: $_platformVersion\n'),
              onTap: () {},
            ),
            // 显示SDK版本
            ListTile(
              leading: Icon(Icons.account_circle),
              title: Text('获取版本号: $_sdkVersion\n '),
              onTap: () async {
                dynamic s = await OneapmFlutterPlugin.getSDKVersion;
                print('OneapmFlutterPlugin.getSDKVersion22: $s');
              },
            ),
            // 设置用户名
            ListTile(
              leading: Icon(Icons.account_circle_sharp),
              title: Text('设置用户名\n '),
              onTap: () async {
                dynamic s = await OneapmFlutterPlugin.setUserName("TestUserName");
                print('OneapmFlutterPlugin.setUserName: $s');
              },
            ),
            // 设置Host地址
            ListTile(
              leading: Icon(Icons.event_available),
              title: Text('设置Host地址 为 7.13\n '),
              onTap: () async {
                dynamic s = await OneapmFlutterPlugin.setHostAndPortAndSecurity(
                    "10.128.7.13", "38081", "0");
                print('OneapmFlutterPlugin.setHostAndPortAndSecurity: $s');
              },
            ),
            // 设置Token
            ListTile(
              leading: Icon(Icons.event_available_sharp),
              title: Text('设置Token 为 爱奇艺\n '),
              onTap: () async {
                dynamic s = await OneapmFlutterPlugin.startWithApplicationToken(
                    "b50c882b-193f-4711-9a0f-998bb97fc412");
                print('OneapmFlutterPlugin.startWithApplicationToken: $s');
              },
            ),
            // 设置自定义Action
            ListTile(
              leading: Icon(Icons.event),
              title: Text('设置Action\n '),
              onTap: () async {
                dynamic s = await OneapmFlutterPlugin.setCustomAction(
                    "viewNameStr", "actionNameStr");
                print('OneapmFlutterPlugin.setCustomAction: $s');
              },
            ),
          ],
        ),
      ),
    );
  }
}

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

1 回复

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


OneAPM 是一个应用性能监控(APM)工具,提供了对移动应用、Web 应用等的性能监控和分析。对于 Flutter 应用,OneAPM 提供了一个 Flutter 插件 oneapm_flutter_plugin,用于监控 Flutter 应用的性能。

以下是使用 oneapm_flutter_plugin 的基本步骤:

1. 添加依赖

首先,在 pubspec.yaml 文件中添加 oneapm_flutter_plugin 依赖:

dependencies:
  flutter:
    sdk: flutter
  oneapm_flutter_plugin: ^版本号 # 请替换为最新版本号

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

2. 初始化 OneAPM

在 Flutter 应用的 main.dart 文件中,初始化 OneAPM。通常在 main 函数中进行初始化:

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

void main() {
  OneAPMFlutterPlugin.init(
    appKey: 'YOUR_APP_KEY', // 替换为你的 OneAPM App Key
    channel: 'Your Channel', // 替换为你的应用渠道
    version: 'Your App Version', // 替换为你的应用版本
  );

  runApp(MyApp());
}

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

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter Demo Home Page'),
      ),
      body: Center(
        child: Text('Hello, OneAPM!'),
      ),
    );
  }
}

3. 配置 Android 和 iOS

Android

android/app/build.gradle 文件中,确保 minSdkVersion 至少为 16:

defaultConfig {
    applicationId "com.example.your_app"
    minSdkVersion 16
    targetSdkVersion 30
    versionCode 1
    versionName "1.0"
}

iOS

ios/Podfile 文件中,确保 platform :ios 至少为 9.0:

platform :ios, '9.0'

然后运行 flutter pub getflutter build ios 来确保所有依赖都已正确配置。

4. 监控自定义事件

你可以使用 OneAPMFlutterPlugin 来监控自定义事件:

OneAPMFlutterPlugin.trackEvent('CustomEventName', {'key1': 'value1', 'key2': 'value2'});
回到顶部