Flutter性能监控插件hk591_apm的使用

HK591APM #

Flutter 应用性能监测工具

如何使用 #

依赖 #

dependencies:
  hk591_apm: ^0.0.7

初始化 #

// 初始化
ApmManager.instance.init(
  config: ApmConfig(enable: true)
);

// 网络监测
HttpOverrides.global = ApmHttpOverrides();

// 注册应用状态监听,APM内部会根据应用状态进行处理
WidgetsBinding.instance.addObserver(ApmWidgetsBindingObserver());

// 添加路由监听
navigatorObservers: [ApmNavigatorObserver.instance],

example/lib/main.dart

import 'dart:io';

import 'package:flutter/material.dart';
import 'package:hk591_apm/hk591_apm.dart';
import 'package:hk591_apm_example/router.dart';
import 'package:hk591_apm_example/widgtes.dart';

// 定义全局导航键
GlobalKey<NavigatorState> globalKey = GlobalKey<NavigatorState>();

void main() {
  // 确保 Flutter 绑定已初始化
  WidgetsFlutterBinding.ensureInitialized();

  // 初始化 APM 插件
  ApmManager.instance.init(
    config: ApmConfig(
      enable: true, 
      handlers: [FloatWindowHandler(globalKey)] // 配置浮窗展示
    )
  );

  // 替换默认 HTTP 监听器
  HttpOverrides.global = ApmHttpOverrides();

  // 注册应用状态监听器
  WidgetsBinding.instance.addObserver(ApmWidgetsBindingObserver());

  // 启动应用
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      // 设置全局导航键
      navigatorKey: globalKey,
      routes: generateRoutes(), // 路由配置
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      // 添加 APM 的路由观察器
      navigatorObservers: [ApmNavigatorObserver.instance],
      home: const MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({Key? key, required this.title}) : super(key: key);

  final String title;

  [@override](/user/override)
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('通用版首页'),
        actions: [
          // 设置按钮
          IconButton(
            icon: const Icon(Icons.settings),
            tooltip: '设置',
            onPressed: () => Navigator.of(context).pushNamed('/setting'),
          ),
        ],
      ),
      body: Center(
        child: ListView(
          padding: const EdgeInsets.only(left: 16.0, right: 16.0, top: 8.0, bottom: 8.0),
          children: [
            // 异常测试按钮
            buildEntryButton(context, '异常测试', '/error_test'),
            // 页面路由跳转测试按钮
            buildEntryButton(context, '页面路由跳转测试', '/navigator_test/first_page'),
            // 设备信息按钮
            buildEntryButton(context, '设备信息', '/navigator_test/device_info_page'),
            // 网络测试按钮
            buildEntryButton(context, '网络测试', '/navigator_test/network_page'),
          ],
        ),
      ),
    );
  }
}
1 回复

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


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

1. 添加依赖

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

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

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

2. 初始化插件

在你的 Flutter 应用的 main.dart 文件中,初始化 hk591_apm 插件。

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

void main() {
  // 初始化 hk591_apm
  Hk591Apm.init();

  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, world!'),
      ),
    );
  }
}

3. 监控性能指标

hk591_apm 插件会自动监控应用的性能指标,如 FPS、内存使用、CPU 使用率等。你可以通过以下方式获取这些指标:

import 'package:hk591_apm/hk591_apm.dart';

void checkPerformance() async {
  // 获取 FPS
  double fps = await Hk591Apm.getFps();
  print('Current FPS: $fps');

  // 获取内存使用情况
  double memoryUsage = await Hk591Apm.getMemoryUsage();
  print('Memory Usage: $memoryUsage MB');

  // 获取 CPU 使用率
  double cpuUsage = await Hk591Apm.getCpuUsage();
  print('CPU Usage: $cpuUsage %');
}

4. 自定义配置

你可以通过 Hk591ApmConfig 来配置插件的行为,例如设置采样间隔、是否启用特定监控等。

Hk591Apm.init(
  config: Hk591ApmConfig(
    sampleInterval: 1000, // 采样间隔,单位为毫秒
    enableFpsMonitor: true, // 是否启用 FPS 监控
    enableMemoryMonitor: true, // 是否启用内存监控
    enableCpuMonitor: true, // 是否启用 CPU 监控
  ),
);

5. 处理性能数据

你可以通过监听 Hk591Apm 的事件来处理性能数据,例如将数据发送到服务器或显示在 UI 上。

Hk591Apm.onFpsChanged.listen((double fps) {
  print('FPS changed: $fps');
});

Hk591Apm.onMemoryChanged.listen((double memoryUsage) {
  print('Memory usage changed: $memoryUsage MB');
});

Hk591Apm.onCpuChanged.listen((double cpuUsage) {
  print('CPU usage changed: $cpuUsage %');
});

6. 停止监控

如果你需要停止性能监控,可以调用 Hk591Apm.stop() 方法。

Hk591Apm.stop();

7. 调试和日志

hk591_apm 插件还提供了调试和日志功能,你可以通过以下方式启用调试日志:

Hk591Apm.setDebugEnabled(true);
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!