当前位置: 首页 > news >正文

Flutter最新稳定版3.16 新特性介绍

Flutter 3.16 默认采用 Material 3 主题,Android 平台预览 Impeller,DevTools 扩展等等

欢迎回到每季度一次的 Flutter 稳定版本发布,这次是 Flutter 3.16。这个版本将 Material 3 设为新的默认主题,为 Android 带来 Impeller 预览,支持为 DevTools 添加扩展等等!与此同时,我们还看到了Flutter Casual Games Toolkit 的重大更新。

在距离上一个版本发布仅三个月的时间里,我们有 145 位社区成员合并了 928 个拉取请求,其中有 40 位社区成员首次贡献了他们的 Flutter 代码!

请继续阅读,了解 Flutter 社区为这个最新版本做出的所有新增和改进!

框架

Material 3 成为新的默认主题

从 3.10 版本(2023 年 5 月)开始,Material 库已更新以符合最新的 Material Design 规范。更改包括新的组件和组件主题,以及更新的组件外观。在 3.16 版本之前,这些更改是“选择加入”的,使用 useMaterial3 主题标志。从此版本开始,默认情况下 useMaterial3 为 true。(#130764)

您仍然可以通过在 MaterialApp 主题中指定 useMaterial3: false 来选择退出 Material 库的 M3 版本,但 Material 2 最终将被弃用和移除。此外,一些小部件不仅需要更新,还需要一个全新的实现。因此,当您看到它作为 Material 3 运行时,您的 UI 可能会显得有些奇怪。为了解决这个问题,请手动迁移到新的小部件,例如 NavigationBar。有关更多详细信息,请查看 GitHub 上的 Material 3 综合问题。

demo 应用允许您尝试所有组件。该演示支持切换 useMaterial3,以便您可以比较这些更改。

Material 3 组件的外观主要由 [ThemeData.colorScheme] 和 [ThemeData.textTheme] 的值确定。创建 Material 3 颜色方案的首选方法是使用 ColorScheme.fromSeed(),该方法创建出既美观又符合辅助功能对比要求的暗色和亮色方案。您还可以使用 ColorScheme.fromImageProvider 从图像的主导颜色创建颜色方案。要进一步自定义 Material 3 组件的外观,请向您的 ThemeData 添加组件主题,例如 ThemeData.segmentedButtonThemeThemeData.snackBarTheme。非空的组件主题属性将覆盖组件 API 文档中指定的默认值。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

支持 Material 3 动效

Material 3 动效的改进包括添加了 EasingDurations 类。Material 2 曲线已重命名,以包含“legacy”一词,并最终将被弃用和移除。(#129942)

编辑菜单中的额外选项

在原生 iOS 上,用户现在可以选择文本并启动共享菜单,提供了几个标准服务。在此版本中,我们添加了查找、搜索和共享选项。

TextScaler 用于指定全局文本缩放因子

为了支持 Android 14 的非线性字体缩放功能,新的 TextScaler 类替代了 Text.textScaleFactor 属性。(#128522)

SelectionArea 更新

Flutter 的 SelectionArea 已更新以支持与鼠标单击或双击以及触摸设备上的长按相关的本机手势。这些新手势默认情况下可用于 SelectionAreaSelectableRegion

  • 单击:在单击位置设置折叠选择。
  • 双击:选择单击位置的单词。
  • 双击 + 拖动:在单词块中扩展选择。

- 长按 + 拖动:在单词块中扩展选择。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在焦点小部件上运行的菜单项

这个版本主要清理了在使用菜单项时的焦点更改:FocusManagerapplyFocusChangesIfNeeded 函数现在在用户点击菜单项时恢复菜单焦点 — 当用户点击菜单项时,焦点已经返回到在打开菜单之前具有焦点的项目。 (#130536)

iOS、macOS中菜单项快捷键的自动重新排序

在Mac平台上,Flutter应用现在按照苹果人机界面指南对菜单中的快捷键进行排序。 (#129309)

之前之后MatrixTransition动画

一个新的 MatrixTransition 小部件允许在创建动画过渡时进行变换。根据当前的动画值,您可以提供一个矩阵变换,应用于子小部件以创建像下面GIF中的效果一样的效果。 (DartPad中的示例) (#131084)

flutter_test中添加了PaintPattern

flutter_test包中,新的 PaintPattern 类允许您验证由小部件(如CustomPainterDecoration)在单元测试中向画布发出的绘制调用。

以前,需要一个golden文件来验证正确的颜色和矩形是否被绘制,但现在您可以使用 PaintPattern。以下示例验证了 MyWidget 在画布上绘制了一个圆:

expect(find.byType(MyWidget),paints..circle(x: 10,y: 10,radius: 20,color: const Color(0xFFF44336),),
);
// Multiple paint calls can even be chained together.
expect(find.byType(MyWidget),paints..circle(x: 10,y: 10,radius: 20,color: const Color(0xFFF44336),),..image(image: MyImage,x: 20,y: 20,),
);

此API以前存在于框架测试文件中,我们注意到一些开发人员发现它非常有用,将其复制到了自己的项目中。如果这适用于您,升级到Flutter 3.16后,您可以从项目中删除该复制。

滚动更新

在Flutter 3.13首次发布了二维滚动基础之后,此版本带来了更多功能和优化。Flutter 3.16现在支持KeepAlive小部件,以及默认焦点遍历和隐式滚动。基于该基础构建的二维滚动小部件将自动采用此支持。有关在二维基础上构建的详细指南,请参见Flutter Build Show的最新一集。

在3.13版本发布后不久,two_dimensional_scrollables包发布了。这个包由Flutter团队维护,包含了构建在框架基础上的第一个二维滚动小部件 — TableView。自初始发布以来,已添加了更多的装饰和样式支持,并进行了额外的错误修复。

引擎

Impeller

Android

在此版本中,我们很高兴地宣布Impeller在Android上已经准备好在稳定通道上进行预览反馈。从今年初以来,团队一直在为Impeller开发Vulkan后端,此预览版本包括收集关于Impeller在支持Vulkan的设备上的特性的反馈。

这张图表展示了在Flutter Gallery过渡性能基准测试中,Impeller的Vulkan后端在过去一年中在99%、90%和平均帧光栅化时间上的改进,用户将观察到更少的卡顿和更高的稳定帧率。在这段时间的末尾,我们从Samsung S10设备切换到Pixel 7 Pro设备,这导致数字大幅下降。尽管如此,我们发现趋势和整体结果非常令人鼓舞。*Impeller尚未在不支持Vulkan的设备上表现良好。随着我们在未来几个月将Impeller的OpenGL后端完善到功能完备,我们计划在未来的稳定版本中也收集关于在这些设备上的Impeller特性的反馈。

Flutter开发者可以通过在flutter run命令中添加--enable-impeller标志,或在项目的AndroidManifest.xml文件的``标签下添加以下设置,尝试在支持Vulkan的Android设备上使用Impeller:

为了确定设备是否支持Vulkan,Impeller使用了在Impeller仓库文档中讨论的测试。通常,Impeller在运行64位操作系统且Android API级别为29或更高的设备上使用Vulkan后端。用户还可以通过按照检查Vulkan支持中的建议来确定他们的设备是否支持Vulkan。

尽管我们对Impeller的Vulkan后端取得的进展感到满意,但在预览期间存在一些已知问题:

  • 平台视图尚未实现,否则会执行相对较差的包含平台视图的帧。
  • 自定义着色器尚未实现。
  • 完整的已知问题和缺失功能列表,最新信息请参阅GitHub上Impeller的项目板。许多问题已经在3.17 beta中得到修复,所以请也尝试一下。

我们对在支持Vulkan的Android设备上尝试Impeller的忠实度、性能感到满意。然而,与iOS相比,Android硬件生态系统更加多样化,我们预计在iOS之前,在Android上会有一个较长的预览期。因此,有关Impeller最有帮助的反馈应包括有关出现问题的具体设备和Android版本的详细信息。

此外,Impeller的Vulkan后端在“debug”构建中提供了比Skia更多的调试功能,并且这些功能具有额外的运行时开销。因此,关于Impeller性能的反馈必须来自于配置文件或发布构建,并且应包括来自DevTools的时间轴以及与同一设备上Skia后端的比较。最后,一如既往,我们非常感激包含一个小而可重现问题的测试用例的反馈。

Impeller性能、忠实度和稳定性

除了关注Vulkan后端之外,从今年初开始,团队还对Impeller的文本性能进行了一些改进,这些改进对Android和iOS都有益。特别是,我们对Impeller的字形图集管理和文本工作负载在引擎的UI和光栅线程之间的分配方式进行了改进。因此,用户将在文本重负载中注意到更少的卡顿。

*这张图表显示了在iPhone 11上使用Impeller进行的我们的一个文本重负载基准测试中,99%、90%和平均帧光栅化时间在毫秒上的减少,特别是90%和平均帧光栅化时间几乎减半。*团队还在为Android和iOS的忠实度和稳定性做出了努力,特别是用户报告的问题。在这个稳定版本周期的三个月里,团队为flutter/engine repo做出了209个与Impeller相关的提交,关闭了217个问题,其中包括42个用户报告的忠实度、稳定性或性能问题。

引擎性能

为了在具有异构多处理的移动设备上实现更好的性能,我们修改了引擎,使对性能敏感的线程,如UI和光栅线程,与设备更强大的核心有关联。我们观察到这个改变在各种基准测试和设备上都产生了积极的影响。在某些情况下,改进效果显著,使99%或90%的帧时间减半或更好。我们预计用户在这个改变后,无论是在Android上使用Skia还是Impeller后端,都将注意到更少的卡顿。在iOS设备上效果较小,更强大和较弱的核心之间的差异较小。

这张图表显示了在几乎所有我们的Android基准测试和设备上,最差、99%、90%和平均帧构建和帧光栅化时间的改进。

API和忠实度改进

Impeller性能叠加

在先前的版本中,Flutter的性能叠加功能在Impeller上未显示。此版本修复了这个问题。性能叠加现在在启用Impeller的情况下正确显示。

抖动现在正确显示

在此版本中,Paint.enableDithering属性被设置为true,并根据Flutter的弃用政策已被弃用。现在,默认启用抖动(不再支持开发者配置的抖动),您将不再看到带状问题。有关此更改的完整说明和迁移指南,请参阅docs.flutter.dev上的破坏性变更页面。

之前之后游戏

游戏

Flutter Games Toolkit

在过去的几年里,我们看到了围绕休闲游戏开发的不断增长的社区。已经有数万款游戏使用Flutter发布,从简单但有趣的拼图到更复杂的街机游戏。其中一些我们喜欢的游戏包括Etermax的Trivia Crack,Lotum的4 Pics 1 Word(猜词游戏),Dong Digital的Brick Mania(街机游戏),Onrizon的StopotS(类别游戏),我们为I/O构建的复古弹球游戏以及在其社交和菜单屏幕中使用Flutter的PUBG手机。

为了帮助游戏开发者更高效,Flutter今天推出了其休闲游戏工具包的重大更新。这是一系列新资源,帮助您从概念到发布,包括更多特定于流派的模板,如卡片游戏、无尽奔跑游戏,以及Play Games Services、应用内购买、广告、成就、Crashlytics和多人支持等服务集成。要了解更多信息,请查看由Zoey Fan发布的游戏工具包启动帖。

Web

在Chrome DevTools的Flutter时间轴事件

Flutter时间轴事件现在在Chrome DevTools的性能面板中公开显示。 (#130132)

要了解更多,请查看Web应用程序性能调试。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Android

鼠标滚轮支持

在优化Wonderous以符合Android的大屏幕指南时,我们发现的一个问题是在平板电脑或可折叠设备上,鼠标滚轮的效果不佳。众所周知的是,用户必须移动滚轮相当多的距离才能使屏幕响应。

通过此版本,在Flutter视图上使用鼠标滚轮滚动的速度与Android设备上的滚动速度匹配。 (44724)

之前外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传之后预测性的后退导航

iOS

App extensions

Flutter现在可以用于定位一些iOS应用扩展。这意味着您可以使用Flutter小部件为某些类型的iOS应用扩展绘制UI。这并不适用于所有类型的应用扩展,因为可能存在API(例如主屏幕小部件)或内存的限制。

了解更多并查看有关如何定位共享扩展的示例,请访问docs.flutter.dev上的添加iOS应用扩展。

包生态系统

新的Flutter收藏夹

我们重新启动了Flutter收藏夹计划!在此周期内,Flutter生态系统委员会指定了flame、flutter_animate、flutter_rust_bridge、riverpod、video_player、macos_ui和fpdart等包为新的Flutter收藏夹。祝贺所有获选者!

请期待将来的新的Flutter收藏夹。要提名包或插件作为潜在的未来Flutter收藏夹,或将任何其他问题带到委员会的注意,请发送电子邮件至。

首次包生态系统虚拟峰会

在8月,我们举办了第一次虚拟峰会,参与者包括50多名pub.dev的非Google和Google贡献者。目标是在非正式的会议中将贡献者聚集起来,计划、教育、学习和分享。在后续调查中,对活动的满意度达到了100%。我们计划与社区合作,在将来的包生态系统活动(线下和线上)中推出类似的活动。在即将发布的包生态系统更新博客文章中了解更多信息。

基于云的Google地图样式

Google Maps平台提供了从Google Cloud控制台的Map Styles页面自定义地图样式的能力。这使您可以在每次进行样式更改时,无需更新应用代码,创建自定义体验。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传要在Flutter中使用此功能,您只需使用控制台中设置的Map ID引用您的地图:

GoogleMap(onMapCreated: _onMapCreated,initialCameraPosition: const CameraPosition(target: _kMapCenter,zoom: 7.0,),key: _key,cloudMapId: _mapId
);

摄像头 X 改进

在3.10稳定版本中,我们为Flutter相机插件添加了对Camera X的初步支持。Camera X是一个Jetpack库,简化了将丰富的相机功能添加到Android应用程序的过程。

通过此发布,我们已添加了任何使用相机的应用程序所需的大多数功能。CameraX解决了插件的Camera 2实现存在的许多问题。

我们鼓励您使用CameraX插件。要选择加入,请在pubspec.yaml文件中添加以下行。

Dependencies: camera: ^0.10.4 # 或尝试最新的相机版本 camera_android_camerax: ^0.5.0

我们期待着您的反馈,因为我们计划在将来的发布中将CameraX作为默认实现。

macOS视频播放器

我们已将视频播放器插件添加到macOS支持,允许开发人员在小部件表面上播放视频。

要了解更多信息,请查看pub.dev上的视频播放器插件。

DevTools

DevTools扩展

新的DevTools扩展框架使以下内容成为可能:

  • 包作者可以为其包构建自定义工具,这些工具直接在DevTools中显示。
  • 包作者可以编写利用DevTools中的现有框架和实用程序的强大工具。
  • 在使用DevTools调试应用程序的Dart和Flutter开发人员可以访问特定于其用例的工具(由其应用程序的依赖项确定,并提供DevTools扩展的依赖项)。

感谢Provider、Drift和Patrol的包作者,这个生态系统已经在建设中,您今天就可以使用这些包的DevTools扩展!

Provider

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传Patrol

Drift深入了解DevTools扩展,请查看Kenzie Davisson的Dart和Flutter DevTools扩展公告。

DevTools更新

此发布的DevTools的一些亮点包括:

  • 增加了对DevTools扩展的支持
  • 增加了一个新的“主页”屏幕,显示您连接的应用程序的摘要。

其他改进还包括:

  • 总体性能
  • 热重新启动的健壮性
  • 文本选择和复制行为
  • 网络分析器响应查看器的优化

要了解更多信息,请查看DevTools的发布说明2.26.1、2.27.0和2.28.1。

VS Code UI可发现性

由于Flutter社区成员DanTup的出色工作,Flutter VS Code扩展现在具有Flutter侧边栏,可轻松访问:

  • 打开Flutter DevTools屏幕
  • 查看活动调试会话
  • 查看可用设备
  • 创建新项目
  • 热重载和重启
  • 运行Flutter Doctor -v
  • 等等

弃用和重大更改

弃用和重大更改

此版本中的重大更改包括在v3.13发布后过期的已弃用API。要查看所有受影响的API以及其他上下文和迁移指南,请参阅此版本的弃用指南。其中许多都受到Flutter修复的支持,包括IDE中的快速修复。可以使用dart fix命令评估和应用批量修复。

一如既往,感谢社区为贡献测试 — 这有助于我们识别这些重大更改。要了解更多信息,请查看Flutter的重大更改政策。

在我们的下一个发布版本中,我们计划将弃用策略扩展到flutter_driver包,除了已支持的flutterflutter_test包。

最后

要查看此版本中包含的所有PRs,请查看发布说明和更改日志:https://docs.flutter.dev/release/release-notes。

Flutter 3.16已发布到稳定通道上,并包括Dart 3.2。

小伙伴们如果想抢先体验Flutter 3.16的新特性,只需运行flutter upgrade即可。

就让我们在Flutter精彩课程中再见吧!

  • ChatGPT + Flutter快速开发多端聊天机器人App
  • Flutter高级进阶实战 仿哔哩哔哩APP
  • Flutter从入门到进阶实战携程网App

相关文章:

Flutter最新稳定版3.16 新特性介绍

Flutter 3.16 默认采用 Material 3 主题,Android 平台预览 Impeller,DevTools 扩展等等 欢迎回到每季度一次的 Flutter 稳定版本发布,这次是 Flutter 3.16。这个版本将 Material 3 设为新的默认主题,为 Android 带来 Impeller 预览…...

nodejs+vue慢性胃炎健康管理系统的设计与实现-微信小程序-安卓-python-PHP-计算机毕业设计

随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于慢性胃炎健康管理系统当然也不能排除在外,随着网络技术的不断成熟,带动了慢性胃炎健康管理系统, 系统首页、个…...

【C++】传递‘类非静态成员函数’用作回调函数

在C语言中,传递函数指针是非常常见的操作。 在C语言中,使用C语言一致的方法传递全局函数指针,或者传递静态函数指针也很常见。 不过如果遇到想传递非静态成员函数时,可以参考以下示例代码。 #ifndef _WORKER_HPP_ #define _WOR…...

vscode 创建 运行c++ 项目

1 扩展 install c 2.1安装 mingw g 下载 MinGW-w64 - for 32 and 64 bit Windows - Browse Files at SourceForge.net win32下载地址 Download x86_64-8.1.0-release-win32-seh-rt_v6-rev0.7z (MinGW-w64 - for 32 and 64 bit Windows) 2.2 把 文件夹 bin 路径 添加到环境…...

Spring Cloud学习(十)【Elasticsearch搜索功能 分布式搜索引擎02】

文章目录 DSL查询文档DSL查询分类全文检索查询精准查询地理坐标查询组合查询相关性算分Function Score Query复合查询 Boolean Query 搜索结果处理排序分页高亮 RestClient查询文档快速入门match查询精确查询复合查询排序、分页、高亮 黑马旅游案例 DSL查询文档 DSL查询分类 …...

大数据HCIE成神之路之数学(3)——概率论

概率论 1.1 概率论内容介绍1.1.1 概率论介绍1.1.2 实验介绍 1.2 概率论内容实现1.2.1 均值实现1.2.2 方差实现1.2.3 标准差实现1.2.4 协方差实现1.2.5 相关系数1.2.6 二项分布实现1.2.7 泊松分布实现1.2.8 正态分布1.2.9 指数分布1.2.10 中心极限定理的验证 1.1 概率论内容介绍…...

【论文解读】FFHQ-UV:用于3D面部重建的归一化面部UV纹理数据集

【论文解读】FFHQ-UV 论文地址:https://arxiv.org/pdf/2211.13874.pdf 0. 摘要 我们提出了一个大规模的面部UV纹理数据集,其中包含超过50,000张高质量的纹理UV贴图,这些贴图具有均匀的照明、中性的表情和清洁的面部区域,这些都是…...

simple foc 移植odriver foc的 anti-cogging(抗齿槽算法)

文章目录 ESP32 simple foc 移植odriver anti-cogging.1.硬件,在淘宝买的。esp32 simple foc(最新). 下电阻三采样。2. 效果,见视频https://www.bilibili.com/video/BV1xg4y1X7Yr/?vd_source4fd70d693021f289fb2d339c6c0407193.代码添加(生成…...

基于深度学习的恶意软件检测

恶意软件是指恶意软件犯罪者用来感染个人计算机或整个组织的网络的软件。 它利用目标系统漏洞,例如可以被劫持的合法软件(例如浏览器或 Web 应用程序插件)中的错误。 恶意软件渗透可能会造成灾难性的后果,包括数据被盗、勒索或网…...

环境配置|GitHub——解决Github无法显示图片以及README无法显示图片

一、问题背景 最近在整理之前写过的实验、项目,打算把这些东西写成blog,并把工程文件整理上传到Github上。但在上传README文件的时候,发现github无法显示README中的图片,如下图所示: 在README中该图片路径为&#xff1…...

AIGC(生成式AI)试用 12 -- 年终再总结

上次使用年终总结为题测试了CSDN创作助手和文心一言的表现,随着不断对总结给出更细节的提示。AIGC(生成式AI)试用 11 -- 年终总结-CSDN博客 总结年终总结生活/工作年终总结IT开发/运维年终总结 AIGC都能就新给出的主题修饰给出相应的关点&am…...

Linux下 tar 命令详解

一、tar 命令概述 Tar(Tape ARchive,磁带归档的缩写,LCTT 译注:最初设计用于将文件打包到磁带上,现在我们大都使用它来实现备份某个分区或者某些重要的目录)。 tar 是类 Unix 系统中广泛使用的命令&#x…...

SQL单表复杂查询where、group by、order by、limit

1.1SQL查询代码如下&#xff1a; select job as 工作类别,count(job) as 人数 from tb_emp where entrydate <2015-01-01 group by job having count(job) > 2 order by count(job) limit 1,1where entrydate <‘2015-01-01’ 表示查询日期小于2015-01-01的记录…...

安卓中轻量级数据存储方案分析探讨

轻量级数据存储功能通常用于保存应用的一些常用配置信息&#xff0c;并不适合需要存储大量数据和频繁改变数据的场景。应用的数据保存在文件中&#xff0c;这些文件可以持久化地存储在设备上。需要注意的是&#xff0c;应用访问的实例包含文件所有数据&#xff0c;这些数据会一…...

数据结构【DS】栈的应用

描述一下如何实现括号匹配&#xff1f; 初始时栈为空。 从左往右遍历算术表达式中的每个括号元素&#xff1a; ①当遍历到左括号时&#xff0c;将其压入栈顶。 ②当遍历到右括号时&#xff0c;将栈顶元素出栈&#xff0c;并判断出栈的左括号与当前遍历的右括号是否匹配&…...

大数据数仓建模基础理论【维度表、事实表、数仓分层及示例】

文章目录 什么是数仓仓库建模&#xff1f;ER 模型三范式 维度建模事实表事实表类型 维度表维度表类型 数仓分层ODS 源数据层ODS 层表示例 DWD 明细数据层DWD 层表示例 DIM 公共维度层DIM 层表示例 DWS 数据汇总层DWS 层表数据 ADS 数据应用层ADS 层接口示例 数仓分层的优势 什么…...

FlinkCDC数据实时同步Mysql到ES

考大家一个问题&#xff0c;如果想要把数据库的数据同步到别的地方,比如es,mongodb,大家会采用哪些方案呢&#xff1f; ::: 定时扫描同步&#xff1f; 实时日志同步? 定时同步是一个很好的方案&#xff0c;比较简单&#xff0c;但是如果对实时要求比较高的话&#xff0c;定…...

【Feign】 基于 Feign 远程调用、 自定义配置、性能优化、实现 Feign 最佳实践

&#x1f40c;个人主页&#xff1a; &#x1f40c; 叶落闲庭 &#x1f4a8;我的专栏&#xff1a;&#x1f4a8; SpringCloud MybatisPlus JVM 石可破也&#xff0c;而不可夺坚&#xff1b;丹可磨也&#xff0c;而不可夺赤。 Feign 一、 基于 Feign 远程调用1.1 RestTemplate方式…...

小迪安全笔记(3)——基础入门3、基础入门4

文章目录 一、抓包&封包&协议&APP&小程序&PC应用&web应用二、30余种加密编码进制&web&数据库&系统&代理 一、抓包&封包&协议&APP&小程序&PC应用&web应用 APP&小程序&PC抓包HTTP/S数据——Charles、F…...

SOME/IP 协议介绍(六)接口设计的兼容性规则

接口设计的兼容性规则&#xff08;信息性&#xff09; 对于所有序列化格式而言&#xff0c;向较新的服务接口的迁移有一定的限制。使用一组兼容性规则&#xff0c;SOME / IP允许服务接口的演进。可以以非破坏性的方式进行以下添加和增强&#xff1a; • 向服务中添加新方法 …...

深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法

深入浅出&#xff1a;JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中&#xff0c;随机数的生成看似简单&#xff0c;却隐藏着许多玄机。无论是生成密码、加密密钥&#xff0c;还是创建安全令牌&#xff0c;随机数的质量直接关系到系统的安全性。Jav…...

【网络安全产品大调研系列】2. 体验漏洞扫描

前言 2023 年漏洞扫描服务市场规模预计为 3.06&#xff08;十亿美元&#xff09;。漏洞扫描服务市场行业预计将从 2024 年的 3.48&#xff08;十亿美元&#xff09;增长到 2032 年的 9.54&#xff08;十亿美元&#xff09;。预测期内漏洞扫描服务市场 CAGR&#xff08;增长率&…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序

一、开发准备 ​​环境搭建​​&#xff1a; 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 ​​项目创建​​&#xff1a; File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命

在华东塑料包装行业面临限塑令深度调整的背景下&#xff0c;江苏艾立泰以一场跨国资源接力的创新实践&#xff0c;重新定义了绿色供应链的边界。 跨国回收网络&#xff1a;废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点&#xff0c;将海外废弃包装箱通过标准…...

Nuxt.js 中的路由配置详解

Nuxt.js 通过其内置的路由系统简化了应用的路由配置&#xff0c;使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

unix/linux,sudo,其发展历程详细时间线、由来、历史背景

sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

USB Over IP专用硬件的5个特点

USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中&#xff0c;从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备&#xff08;如专用硬件设备&#xff09;&#xff0c;从而消除了直接物理连接的需要。USB over IP的…...

Docker 本地安装 mysql 数据库

Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker &#xff1b;并安装。 基础操作不再赘述。 打开 macOS 终端&#xff0c;开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...

站群服务器的应用场景都有哪些?

站群服务器主要是为了多个网站的托管和管理所设计的&#xff0c;可以通过集中管理和高效资源的分配&#xff0c;来支持多个独立的网站同时运行&#xff0c;让每一个网站都可以分配到独立的IP地址&#xff0c;避免出现IP关联的风险&#xff0c;用户还可以通过控制面板进行管理功…...