Flutter性能监控插件fl_umeng_apm的使用
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
更多关于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
!