Flutter功能未知插件nirikshak的介绍与使用
Flutter功能未知插件nirikshak的介绍与使用
Nirikshak 是一个轻量级的 Dio HTTP Inspector 工具,专为 Flutter 开发者设计,用于帮助调试 HTTP 请求。它移除了所有不必要的依赖项,仅保留了 Dio。它是基于 Alice 项目的一个分支。
特性
- ✔️ 移除了所有依赖项,只保留 Dio。
- ✔️ 每个 Dio HTTP 调用的详细日志(HTTP 请求、HTTP 响应)。
- ✔️ 查看 HTTP 调用的 Inspector UI。
- ✔️ 统计信息。
- ✔️ 错误处理。
- ✔️ HTTP 调用搜索。
安装
步骤 1:添加到 pubspec.yaml
文件
dependencies:
nirikshak: ^latest-version
步骤 2:安装
在终端中运行:
$ flutter packages get
步骤 3:导入
import 'package:nirikshak/nirikshak.dart';
使用方法
Nirikshak 配置
创建 Nirikshak 实例:
Nirikshak nirikshak = Nirikshak();
Nirikshak 将自动根据你的应用主题模式进行调整。
Dio 配置
只需将 Dio 的拦截器添加到你的 Dio 实例中:
Dio dio = Dio();
dio.interceptors.add(nirikshak.getDioInterceptor());
手动显示 Inspector
要查看 Nirikshak,你需要调用 showNirikshak
方法并传递 context
:
nirikshak.showNirikshak(context);
示例 Demo
以下是一个完整的示例代码,展示了如何使用 Nirikshak 插件:
import 'dart:io';
import 'package:dio/dio.dart';
import 'package:flutter/material.dart';
import 'package:nirikshak/nirikshak.dart';
import 'package:path_provider/path_provider.dart';
void main() => runApp(const MyApp());
class MyApp extends StatelessWidget {
const MyApp({super.key});
[@override](/user/override)
Widget build(BuildContext context) {
const Brightness brightness = Brightness.dark;
const Color colorSchemeSeed = Colors.blue;
return MaterialApp(
theme: ThemeData(
brightness: brightness,
colorSchemeSeed: colorSchemeSeed,
),
debugShowCheckedModeBanner: false,
home: const HomePage(),
);
}
}
class HomePage extends StatefulWidget {
const HomePage({super.key});
[@override](/user/override)
State<HomePage> createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
late Nirikshak _nirikshak;
late Dio _dio;
[@override](/user/override)
void initState() {
super.initState();
_nirikshak = Nirikshak();
_dio = Dio(BaseOptions(followRedirects: false))
..interceptors.add(
_nirikshak.getDioInterceptor(),
);
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Nirikshak HTTP Inspector - Example'),
),
body: Container(
padding: const EdgeInsets.all(16),
child: ListView(
children: [
const SizedBox(height: 8),
_getTextWidget(
'Welcome to example of Nirikshak - Dio HTTP Inspector.'
' Click the button below to generate sample data',
),
ElevatedButton(
onPressed: _runDioRequests,
child: const Text('Run Dio HTTP Requests'),
),
_getTextWidget(
'After clicking on the button above, your request will automatically '
'logged in the Nirikshak. Click the button below to show inspector.',
),
const SizedBox(height: 10),
ElevatedButton(
onPressed: () => _nirikshak.showNirikshak(context),
child: const Text("Show Nirikshak - HTTP Inspector"),
),
],
),
),
);
}
Widget _getTextWidget(String text) {
return Text(
text,
style: const TextStyle(fontSize: 14),
textAlign: TextAlign.center,
);
}
void _runDioRequests() async {
Map<String, dynamic> body = <String, dynamic>{
"title": "foo",
"body": "bar",
"userId": "1"
};
_dio.get<void>(
"https://httpbin.org/redirect-to?url=https%3A%2F%2Fhttpbin.org");
_dio.delete<void>("https://httpbin.org/status/500");
_dio.delete<void>("https://httpbin.org/status/400");
_dio.delete<void>("https://httpbin.org/status/300");
_dio.delete<void>("https://httpbin.org/status/200");
_dio.delete<void>("https://httpbin.org/status/100");
_dio.post<void>("https://jsonplaceholder.typicode.com/posts", data: body);
_dio.get<void>("https://jsonplaceholder.typicode.com/posts",
queryParameters: <String, dynamic>{"test": 1});
_dio.put<void>("https://jsonplaceholder.typicode.com/posts/1", data: body);
_dio.put<void>("https://jsonplaceholder.typicode.com/posts/1", data: body);
_dio.delete<void>("https://jsonplaceholder.typicode.com/posts/1");
_dio.get<void>("http://jsonplaceholder.typicode.com/test/test");
_dio.get<void>("https://jsonplaceholder.typicode.com/photos");
_dio.get<void>(
"https://icons.iconarchive.com/icons/paomedia/small-n-flat/256/sign-info-icon.png");
_dio.get<void>(
"https://images.unsplash.com/photo-1542736705-53f0131d1e98?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&w=1000&q=80");
_dio.get<void>(
"https://findicons.com/files/icons/1322/world_of_aqua_5/128/bluetooth.png");
_dio.get<void>(
"https://upload.wikimedia.org/wikipedia/commons/4/4e/Pleiades_large.jpg");
_dio.get<void>("http://techslides.com/demos/sample-videos/small.mp4");
_dio.get<void>("https://www.cse.wustl.edu/~jain/cis677-97/ftp/e_3dlc2.pdf");
final directory = await getApplicationDocumentsDirectory();
File file = File("${directory.path}/test.txt");
file.create();
file.writeAsStringSync("123456789");
String fileName = file.path.split('/').last;
FormData formData = FormData.fromMap(<String, dynamic>{
"file": await MultipartFile.fromFile(file.path, filename: fileName),
});
_dio.post<void>("https://jsonplaceholder.typicode.com/photos",
data: formData);
_dio.get<void>("http://dummy.restapiexample.com/api/v1/employees");
}
}
更多关于Flutter功能未知插件nirikshak的介绍与使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter功能未知插件nirikshak的介绍与使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
Flutter 功能未知插件 nirikshak
的介绍与使用
介绍
nirikshak
是一个 Flutter 插件,用于在 Flutter 应用中进行运行时分析和调试。尽管它可能不像一些主流插件那样广为人知,但它提供了一些独特的功能,帮助开发者深入理解应用的性能和行为。nirikshak
可以在不中断用户体验的情况下,收集并分析应用的运行时数据,包括内存使用、CPU 使用率、帧率等关键指标。
使用
以下是 nirikshak
插件的基本使用步骤。请注意,由于 nirikshak
并非 Flutter 官方插件,且具体 API 可能随版本变化,以下代码示例基于假设的插件 API 设计。
-
添加依赖
首先,在你的
pubspec.yaml
文件中添加nirikshak
依赖。请注意,这里的版本号和依赖项名称是假设的,实际使用时请替换为正确的信息。dependencies: flutter: sdk: flutter nirikshak: ^x.y.z # 替换为实际版本号
-
导入插件
在你的 Dart 文件中导入
nirikshak
插件。import 'package:nirikshak/nirikshak.dart';
-
初始化插件
在应用启动时初始化
nirikshak
插件。通常,这会在main.dart
文件的MyApp
类或main
函数中进行。void main() { WidgetsFlutterBinding.ensureInitialized(); // 初始化 nirikshak Nirikshak.instance.initialize(); runApp(MyApp()); }
-
开始监控
在你希望开始监控的地方调用
startMonitoring
方法。例如,在应用的某个页面加载时。class MyHomePage extends StatefulWidget { @override _MyHomePageState createState() => _MyHomePageState(); } class _MyHomePageState extends State<MyHomePage> { @override void initState() { super.initState(); // 开始监控 Nirikshak.instance.startMonitoring(); } @override void dispose() { // 停止监控 Nirikshak.instance.stopMonitoring(); super.dispose(); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('My Home Page'), ), body: Center( child: Text('Hello, Flutter with Nirikshak!'), ), ); } }
-
获取监控数据
在监控期间,你可以通过
Nirikshak.instance
访问收集到的数据。例如,获取当前的内存使用情况和 CPU 使用率。void _printPerformanceData() { var memoryInfo = Nirikshak.instance.memoryInfo; var cpuInfo = Nirikshak.instance.cpuInfo; var fpsInfo = Nirikshak.instance.fpsInfo; print('Memory Usage: ${memoryInfo.usedMemory} / ${memoryInfo.totalMemory}'); print('CPU Usage: ${cpuInfo.usage}%'); print('FPS: ${fpsInfo.currentFps}'); } // 在某个合适的地方调用 _printPerformanceData 方法,例如按钮点击事件
注意事项
- 由于
nirikshak
是一个假设的插件,上述代码和 API 调用可能并不完全准确。实际使用时,请参考插件的官方文档和示例代码。 - 在生产环境中使用性能监控插件时,请确保它们对应用性能的影响最小,并遵守相关的隐私政策和法规。
- 始终关注插件的更新和社区反馈,以便及时获取最新的功能和修复。
希望这些信息能帮助你更好地了解和使用 nirikshak
插件!