Flutter应用性能监控插件shipbook_flutter的使用
Flutter应用性能监控插件shipbook_flutter的使用
ShipBook包用于Flutter
官方SDK
这是官方的ShipBook SDK用于Flutter。ShipBook可以让你远程收集、搜索和分析用户的日志和异常,并在云端进行用户和会话级别的分析。
关于ShipBook
ShipBook可以让你远程收集、搜索和分析用户的日志和异常,并在云端进行用户和会话级别的分析。
资源
作者
Elisha Sterngold(ShipBook Ltd.)
许可证
ShipBookSDK 可供使用MIT许可证。更多详情请查看LICENSE文件。
示例代码
import 'package:flutter/material.dart';
import 'package:shipbook_flutter/shipbook_flutter.dart';
// 获取日志记录器实例
final log = Shipbook.getLogger("main");
void main() {
runApp(const MyApp());
// 启用内部日志记录
Shipbook.enableInnerLog(true);
// 初始化ShipBook,传入应用ID和应用密钥
Shipbook.start("appId", "appKey");
}
class RegisterButton extends StatefulWidget {
const RegisterButton({super.key});
[@override](/user/override)
// ignore: library_private_types_in_public_api
_RegisterButtonState createState() => _RegisterButtonState();
}
class _RegisterButtonState extends State<RegisterButton> {
bool isUserRegistered = false;
int counter = 0;
[@override](/user/override)
Widget build(BuildContext context) {
return TextButton(
onPressed: () {
setState(() {
if (isUserRegistered) {
Shipbook.logout(); // 注销当前用户
isUserRegistered = false;
} else {
isUserRegistered = true;
Shipbook.registerUser('test$counter', fullName: 'Test User $counter', email: 'test$counter@test.com'); // 注册新用户
counter++;
}
});
},
child: Text(!isUserRegistered ? '注册用户 [test$counter]' : '从ShipBook注销'),
);
}
}
class ScreenButton extends StatelessWidget {
const ScreenButton({super.key, required this.screenName});
final String screenName;
[@override](/user/override)
Widget build(BuildContext context) {
return TextButton(
onPressed: () {
Shipbook.screen(screenName); // 设置当前屏幕名称
},
child: Text('设置屏幕为 $screenName'),
);
}
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
useMaterial3: true,
),
home: const MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key, required this.title});
final String title;
[@override](/user/override)
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
int _counter = 0;
void _incrementCounter() {
log.i('正在增加计数器 $_counter'); // 记录日志信息
log.d('计数器增加到 $_counter'); // 记录详细日志信息
setState(() {
_counter++;
});
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Theme.of(context).colorScheme.inversePrimary,
title: Text(widget.title),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
const RegisterButton(),
const ScreenButton(screenName: 'Home'),
const Text(
'你已经按了按钮这么多次:',
),
Text(
'$_counter',
style: Theme.of(context).textTheme.headlineMedium,
),
],
),
),
floatingActionButton: FloatingActionButton(
onPressed: _incrementCounter,
tooltip: '增加',
child: const Icon(Icons.add),
),
);
}
}
更多关于Flutter应用性能监控插件shipbook_flutter的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter应用性能监控插件shipbook_flutter的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
shipbook_flutter
是一个用于 Flutter 应用的性能监控和错误追踪的插件。它可以帮助开发者监控应用的性能、捕获错误、收集日志,并将这些数据发送到 Shipbook 服务器进行分析。
以下是 shipbook_flutter
的使用步骤:
1. 添加依赖
首先,在 pubspec.yaml
文件中添加 shipbook_flutter
依赖:
dependencies:
shipbook_flutter: ^1.0.0
然后运行 flutter pub get
来安装依赖。
2. 初始化 Shipbook
在 main.dart
文件中初始化 Shipbook。通常,你会在 main()
函数中初始化它:
import 'package:shipbook_flutter/shipbook_flutter.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 初始化 Shipbook
await Shipbook.initialize(
appId: 'YOUR_APP_ID',
appKey: 'YOUR_APP_KEY',
serverUrl: 'https://api.shipbook.io', // 可选,默认是 Shipbook 的官方服务器
);
runApp(MyApp());
}
确保将 YOUR_APP_ID
和 YOUR_APP_KEY
替换为你在 Shipbook 控制台中获取的实际值。
3. 捕获日志
你可以使用 Shipbook
的 log
方法来记录日志:
import 'package:shipbook_flutter/shipbook_flutter.dart';
void logSomething() {
Shipbook.log('This is a log message', level: LogLevel.info);
}
LogLevel
可以是 info
, warning
, error
, debug
, verbose
等。
4. 捕获异常
你可以使用 Shipbook
来捕获未处理的异常:
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Shipbook.initialize(
appId: 'YOUR_APP_ID',
appKey: 'YOUR_APP_KEY',
);
// 捕获未处理的异常
FlutterError.onError = (FlutterErrorDetails details) {
Shipbook.logError(details.exception, stackTrace: details.stack);
};
runApp(MyApp());
}
5. 监控性能
shipbook_flutter
还可以监控应用的性能指标,例如启动时间、页面加载时间等。你可以使用 Shipbook
的 trackEvent
方法来记录自定义事件:
void trackCustomEvent() {
Shipbook.trackEvent('user_login', properties: {'user_id': '123'});
}
6. 用户识别
如果你想要将日志和事件与特定用户关联,可以使用 identify
方法:
void identifyUser() {
Shipbook.identify('user_id_123', traits: {'name': 'John Doe', 'email': 'john@example.com'});
}
7. 查看数据
完成上述步骤后,你可以在 Shipbook 控制台中查看应用的日志、错误、性能数据和自定义事件。
8. 调试
在开发过程中,你可以启用调试模式来查看 shipbook_flutter
的日志输出:
await Shipbook.initialize(
appId: 'YOUR_APP_ID',
appKey: 'YOUR_APP_KEY',
debug: true, // 启用调试模式
);
9. 生产环境
在发布应用时,请确保禁用调试模式:
await Shipbook.initialize(
appId: 'YOUR_APP_ID',
appKey: 'YOUR_APP_KEY',
debug: false, // 禁用调试模式
);