Flutter性能监控插件fl_umeng_apm的使用

发布于 1周前 作者 yuanlaile 来自 Flutter

Flutter性能监控插件fl_umeng_apm的使用

初始化友盟

在使用 fl_umeng_apm 插件之前,需要先初始化友盟。可以通过以下代码实现:

Future<void> initState() async {
  /// 注册友盟性能监测
  final bool? data = await FlUMengAPM().init();

  /// 初始化APM后再 初始化UMeng
  print('UMeng 初始化成功 = $data');
}

设置版本号

可以设置应用的版本号,例如从 1.0.0 更新到 1.1.1

void fun() async {
  /// 设置版本号
  final bool data =
  await FlUMengAPM().setAppVersion('1.0.0', '1.1.1', '20');
  print('setAppVersion  $data');
}

下面是一个完整的示例代码,包含了上述功能:

import 'package:flutter/material.dart';
import 'package:fl_umeng/fl_umeng.dart';
import 'package:fl_umeng_apm/fl_umeng_apm.dart';

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter UMeng APM Example',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

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

class _MyHomePageState extends State<MyHomePage> {
  String text = '';

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

  /// 注册友盟性能检测
  Future<void> init() async {
    /// 注册友盟
    debugPrint('注册友盟');
    final bool data = await FlUMeng().init(
        androidAppKey: '5f8fe2abfac901c19a8642e',
        iosAppKey: '5f8fe4d4c1122b44acfc7aa7',
        channel: 'channel');
    debugPrint('Umeng 初始化成功 = $data');
    await Flumeng().setLogEnabled(true);

    /// 注册友盟性能检测
    debugPrint('注册友盟性能检测');
    final bool value = await FlUMengAPM().init();
    debugPrint('Umeng apm 初始化成功 = $value');

    /// 设置版本号
    final bool versionData = await FlUMengAPM().setAppVersion('1.0.0', '1.1.1', '20');
    debugPrint('setAppVersion  $versionData');
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('UMeng APM Example'),
      ),
      body: Column(
        children: [
          Container(
            margin: EdgeInsets.symmetric(vertical: 1),
            width: double.infinity,
            height: 100,
            padding: EdgeInsets.all(1),
            alignment: Alignment.center,
            decoration: BoxDecoration(
              color: Colors.black12,
              borderRadius: BorderRadius.circular(6),
            ),
            child: SingleChildScrollView(
              child: Text(text, textAlign: TextAlign.center),
            ),
          ),
          ElevatedButton(
            onPressed: () async {
              final bool data =
                  await FlUMengAPM().setCustomLog('key', 'type');
              text = 'setCustomLog  $data';
              setState(() {});
            },
            child: Text('setCustomLog'),
          ),
          if (defaultTargetPlatform == TargetPlatform.android)
            ...[
              Padding(padding: EdgeInsets.all(5), child: Text('仅支持 Android')),
              Wrap(
                spacing: 5,
                runSpacing: 5,
                alignment: WrapAlignment.center,
                children: [
                  ElevatedButton(
                    onPressed: () async {
                      final String? data = await FlUMengAPM().getUMAPMFlag();
                      text = 'getUMAPMFlag  $data';
                      setState(() {});
                    },
                    child: Text('getUMAPMFlag'),
                  ),
                ],
              ),
            ]
        ],
      ),
    );
  }
}

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

1 回复

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


当然,以下是如何在Flutter项目中集成和使用fl_umeng_apm(友盟+性能监控插件)的代码示例。

1. 添加依赖

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

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

然后运行flutter pub get来安装依赖。

2. 配置Android项目

android/app/src/main/AndroidManifest.xml中添加友盟+的AppKey(请替换为你的实际AppKey):

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.yourapp">

    <!-- 其他配置 -->

    <meta-data
        android:name="UMENG_APPKEY"
        android:value="你的友盟AppKey" />
    <meta-data
        android:name="UMENG_CHANNEL"
        android:value="your_channel" /> <!-- 可选,用于标识渠道 -->
</manifest>

3. 配置iOS项目

ios/Runner/Info.plist中添加友盟+的AppKey(请替换为你的实际AppKey):

<dict>
    <!-- 其他配置 -->
    <key>UMENG_APPKEY</key>
    <string>你的友盟AppKey</string>
    <key>UMENG_CHANNEL</key>
    <string>your_channel</string> <!-- 可选,用于标识渠道 -->
</dict>

注意:对于iOS,你还需要在ios/Podfile中确保平台版本支持,通常至少为iOS 9.0。

4. 初始化并使用fl_umeng_apm

在你的Flutter项目的main.dart文件中,初始化并使用fl_umeng_apm

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

void main() {
  // 初始化友盟+性能监控
  FlUmengApm.init(
    androidAppKey: '你的友盟AppKey', // 仅在Android上需要
    iosAppKey: '你的友盟AppKey', // 仅在iOS上需要
    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(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  void initState() {
    super.initState();
    // 这里可以添加其他初始化代码
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter 性能监控示例'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              '点击按钮触发页面跳转,监控性能',
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: () {
                // 页面跳转,友盟+会自动监控页面跳转性能
                Navigator.push(
                  context,
                  MaterialPageRoute(builder: (context) => SecondPage()),
                );
              },
              child: Text('跳转到第二页'),
            ),
          ],
        ),
      ),
    );
  }
}

class SecondPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('第二页'),
      ),
      body: Center(
        child: Text('这是第二页'),
      ),
    );
  }
}

5. 运行项目

确保所有配置正确后,运行你的Flutter项目:

flutter run

现在,你的Flutter应用已经集成了友盟+性能监控插件,并且会自动监控页面跳转等性能数据。你可以在友盟+后台查看详细的性能监控报告。

注意

  • 确保你已经在友盟+后台创建了应用并获取了正确的AppKey。
  • 友盟+性能监控会自动采集数据,但具体采集哪些数据以及数据的展示方式,需要在友盟+后台进行配置。
  • 在生产环境中,建议关闭日志打印(enableLog: false)。

希望这个示例能帮助你顺利集成和使用fl_umeng_apm

回到顶部