即刻体验 | 使用 Flutter 3.19 更高效地开发

news2024/11/19 0:42:03

outside_default.png

我们已隆重推出全新的 Flutter 版本——Flutter 3.19。此版本引入了专为 Gemini 设计的新 Dart SDK、一个能让开发者对 Widget 动画实现精细化控制的全新 Widget,Impeller 更新带来的渲染性能提升、有助于实现深层链接的工具和对 Windows Arm64 的支持,以及更多丰富功能!

Flutter 社区持续展现出令人赞叹的实力,有 168 名社区成员合并了 1,429 个拉取请求 (pull request),其中有 43 名社区成员提交了他们的首个 Flutter 拉取请求 (pull request)!

欢迎您继续阅读本篇文章,了解 Flutter 社区为这个最新版本带来的所有新功能和改进!

AI 集成

Gemini Google AI Dart SDK 

测试版发布

Google AI Dart SDK 已发布测试版,这使得您能够利用 Google 最新的 Gemini 系列 AI 模型,在 Dart 或 Flutter 应用中构建生成式 AI 功能。目前 pub.dev 上已提供 google_generative_ai package。如要详细了解如何使用 Google AI Dart SDK 进行开发,您可以参阅此博文,或者直接查阅 Dart 快速入门教程。

  • google_generative_ai

    https://pub.dev/packages/google_generative_ai

  • 此博文

    http://docs.google.com/flutter/harness-gemini-in-your-dart-and-flutter-apps-00573e560381

  • Dart 快速入门

    https://ai.google.dev/tutorials/dart_quickstart

9f16807e2226b91f8c3193a656f3fea7.png

框架

滚动优化

以前在 Flutter 中,当您使用两只手指拖动时,滚动速度会是单指的两倍。现在,您可以使用 MultiTouchDragStrategy.latestPointer 来配置默认的 ScrollBehavior,实现与触摸点数量无关的滚动行为。若想了解有关此变更的更多信息,您可以参阅迁移指南。

  • 迁移指南

    https://docs.flutter.dev/release/breaking-changes/multi-touch-scrolling

我们还完成了 SingleChildScrollView 和 ReorderableList 的错误修复,解决了多个报告的崩溃和意外行为问题。

  • SingleChildScrollView

    https://github.com/flutter/flutter/pull/136871

  • ReorderableList

    https://github.com/flutter/flutter/pull/136828

我们还解决了一个关于二维滚动的问题,现在当您在任一方向进行滚动操作时,如果进行拖动或点按,滚动活动将按预期停止。

自上次发布以来,我们对 two_dimensional_scrollables package 中的 TableView Widget 也进行了更新。此次更新改善了其整体表现、增加了对合并单元格的支持,并且在 Flutter 3.16 稳定版发布后,采用了更多二维滚动基础组件的新功能。

AnimationStyle

得益于 Flutter 社区成员 @TahaTesser 的贡献,Flutter 现在新增了一个名为 AnimationStyle 的 Widget。该 Widget 可让用户覆盖 MaterialApp、ExpansionTile 和 PopupMenuButton 等 Widget 中的默认动画行为,帮助开发者覆盖动画曲线和时长。

  • @TahaTesser

    https://github.com/TahaTesser

  • 贡献

    https://github.com/flutter/flutter/pull/138721

SegmentedButton.styleFrom

Flutter 社区成员 @AcarFurkan 添加了一个 styleFrom 静态实用方法,类似于其他按钮类型所提供的方法,能够快速创建 SegmentedButton 的 ButtonStyle,与其他分段按钮共享,或者用于配置应用的 SegmentedButtonTheme。

  • @AcarFurkan

    https://github.com/AcarFurkan

自适应开关

这个自适应组件在 macOS 和 iOS 平台上的外观和风格就像原生控件,而在其他平台上则遵循 Material Design 的外观和风格。它并不依赖于 Cupertino 库,因此其 API 在所有平台上都是完全一致的。

想要了解详情,您可以参阅自适应开关拉取请求,以及 Switch.adaptive 构造函数 API 页面上的实时示例。

  • 自适应开关拉取请求

    https://github.com/flutter/flutter/pull/130425

  • API 页面

    https://api.flutter.dev/flutter/material/Switch/Switch.adaptive.html

SemanticsProperties 可访问性标识符

SemanticsProperties 中新增了一个可访问性标识符,用于为原生可访问性层级中的语义节点提供标识符。在 Android 平台上,这个标识符会以 resource-id 的形式出现在可访问性层级结构中;在 iOS 平台上,该标识符会设置 UIAccessibilityElement.accessibilityIdentifier。感谢社区成员 @bartekpacia 对这一涉及到引擎和框架层面的改变所做出的贡献。

  • @bartekpacia

    https://github.com/bartekpacia

  • 引擎

    https://github.com/flutter/engine/pull/47961

  • 框架

    https://github.com/flutter/flutter/pull/138331

增加了对文本 Widget 状态的访问权限

我们在 TextField 和 TextFormField 中增加了对 MaterialStatesController 的支持,以便您监听 MaterialState 的变化情况。

UndoHistory 堆栈

我们修复了在日语键盘上撤销/重做历史记录可能会消失的问题。现在您可以在条目被推送到 UndoHistory 堆栈之前对其进行修改。

  • 修复了

    https://github.com/flutter/flutter/pull/138674

  • 问题

    https://github.com/flutter/flutter/issues/130881

引擎

Impeller 进展

Android OpenGL 预览版

发布 3.16 稳定版时,我们邀请了用户在支持 Vulkan 的 Android 设备上试用 Impeller,覆盖了市面上 77% 的 Android 设备。在过去的几个月里,我们已经将 Impeller 的 OpenGL 后端功能提升到了与 Vulkan 后端相同的水平,例如添加对 MSAA 的支持。这意味着 Flutter 应用能够在几乎所有 Android 设备上正确渲染,不过还有少数功能尚在开发,暂未完全支持,如自定义着色器和对外部纹理的全面支持等。

  • 对 MSAA 的支持

    https://github.com/flutter/engine/pull/47030

请各位 Flutter 开发者升级到最新稳定版。在启用 Impeller 后,如果遇到任何问题,欢迎您随时提交相关报告。当前阶段的反馈对于确保 Impeller 能在 Android 平台上取得成功,以及我们能够在今年晚些时候有把握地将其设为默认渲染器至关重要。由于 Android 硬件生态系统比 iOS 生态系统更加多样化,因此关于 Impeller 的最有效的反馈需要包含出现问题的具体设备型号和所使用的 Android 版本的详细信息。

  • 启用 Impeller

    https://docs.flutter.dev/perf/impeller#android

此外,您还需注意,Impeller 的 Vulkan 后端在调试 build 中可提供比 Skia 后端更多的调试功能,且这些功能会产生额外的运行时消耗。因此,我们建议您通过配置文件 build 或发布 build 提供关于 Impeller 性能的反馈。Bug 报告需要包含来自 DevTools 的时间线数据,以及在同一设备上与 Skia 后端的性能对比数据。最后,我们一如既往地感谢大家提供包含对可复现问题的小型案例加以说明等反馈。

  • 调试

    https://docs.flutter.dev/testing/build-modes#debug

  • 配置文件

    https://docs.flutter.dev/testing/build-modes#profile

  • 发布

    https://docs.flutter.dev/testing/build-modes#release

战略路线图

在 Impeller 的 Android 预览阶段,继渲染保真度之后,我们主要关注的是性能。在性能持续逐步提升的同时,一些更大规模的改进工作也在进行中。我们预计通过利用 Vulkan 子通道技术,来极大地提高高级混合模式的性能。此外,我们还计划改变渲染策略,从一直以来在 CPU 上对每一个路径进行细分 (tessellating),转向采用 Stencil-then-cover 的方法,这将显著降低 Impeller 在 Android 和 iOS 上的 CPU 使用率。最后,我们希望新的高斯模糊实现能够达到与 Skia 实现相同的吞吐量,并且更符合 iOS 上的模糊惯用用法。

  • Vulkan 子通道

    https://github.com/flutter/flutter/issues/128911

  • Stencil-then-cover

    https://github.com/flutter/flutter/issues/137714

  • 高斯模糊

    https://github.com/flutter/flutter/issues/131580

API 改进

字形信息

在此次发布的版本中,dart:ui 的 Paragraph 对象新增了两个方法: getClosestGlyphInfoForOffset 和 getGlyphInfoAt,这两个方法分别可返回一个新类型 GlyphInfo 的对象。您可查看关于新类型 GlyphInfo 的文档。

  • GlyphInfo

    https://main-api.flutter.dev/flutter/dart-ui/GlyphInfo-class.html

GPU 跟踪

在 Impeller 框架下,使用 Metal 的 iOS、macOS、模拟器环境中,以及支持 Vulkan 的 Android 设备中,Flutter 引擎现会在调试 build 和配置文件 build 中为时间轴上的每一帧报告 GPU 时间。这些 GPU 帧时间数据可以在 DevTools 的 "GPUTracer" 标题下进行查看。

bff9fbb855cba96d997617b3a9bbf1b4.png

请注意,由于不支持 Vulkan 的 Android 设备可能会错误报告其对于查询 GPU 时间的支持情况,因此,在这些设备上,Impeller 的 GPU 跟踪功能只能通过在 AndroidManifest.xml 文件中设置标志来启用。

<meta-data
  android:name="io.flutter.embedding.android.EnableOpenGLGPUTracing"
  android:value="true" />

性能优化

特化常量

我们的团队为 Impeller 添加了特化常量支持。通过在 Impeller 的着色器中利用这一功能,Flutter 引擎的未压缩二进制文件大小减少了将近 350 KB。

  • 特化常量支持

    https://github.com/flutter/flutter/issues/119357

  • 将近 350 KB

    https://flutter-flutter-perf.skia.org/e/?begin=1698877815&end=1702074996&queries=test%3Dhello_world_ios__compile&requestType=0&selected=commit%3D37892%26name%3D%252Carch%253Darm%252Cbranch%253Dmaster%252Cconfig%253Ddefault%252Cdevice_type%253DiPhone_11%252Cdevice_version%253Dnone%252Chost_type%253Dmac%252Csub_result%253Dflutter_framework_uncompressed_bytes%252Ctest%253Dhello_world_ios__compile%252C

背景滤镜加速

尽管仍有进步空间,但此版本包含一些针对 Impeller 的背景滤镜和模糊处理的显著性能改进。具体而言,开源社区贡献者 @knopp 注意到 Impeller 错误地请求了读取屏幕纹理的功能。移除这一功能后,在我们的基准测试中,对于包含多个背景滤镜的场景,根据其复杂程度的不同,性能提升了 20% 至 70% 不等。

  • @knopp

    https://github.com/knopp

  • 注意到

    https://github.com/flutter/flutter/issues/131567#issuecomment-1678210475

  • 移除这一功能后

    https://github.com/flutter/engine/pull/47808

此外,Impeller 不再对每一个背景滤镜都无条件地存储模板缓冲区。相反,它现在会记录任何影响剪辑的操作,并在为背景滤镜恢复保存层时,将这些操作重放到一个新的模板缓冲区中。

  • 无条件地存储模板缓冲区

    https://github.com/flutter/engine/pull/47397

1658bf5a9cd399d8d6fd15ed47573402.png

通过这一变化,我们在采用 Vulkan 后端运行 Impeller 的 Pixel 7 Pro 上,对动画高级混合模式进行基准测试时,平均 GPU 帧时间从 55 毫秒显著提高到了 16 毫秒。同时,90% 的光栅线程 CPU 时间也从大约 110 毫秒下降到了 22 毫秒。

Android

深层链接 Web 验证器

我们从开发者那里了解到,实现深层链接 (将用户从 Web URL 导航至移动应用中的特定页面) 一直以来都是一个实施难度较大且容易出错的任务。因此,我们首先创建了一个验证工具,以帮助开发者了解哪些链接配置不正确,并提供了实施指导。我们非常高兴地宣布,Flutter 深层链接验证器的早期版本现已推出!

在此早期版本中,Flutter 深层链接验证器支持对 Android 进行 Web 检查,这意味着该工具可以验证您 assetlinks.json 文件的设置是否正确。您可以打开 DevTools,点击进入 "深层链接" (Deep Links) 标签页,然后导入一个包含深层链接的 Flutter 项目。深层链接验证器会显示您 Web 文件的配置是否正确。您可以参阅深层链接验证工具的测试说明,以了解详细信息。

  • 测试说明

    https://docs.google.com/document/d/1fnWe8EpZleMtSmP0rFm2iulqS3-gA86z8u9IsnXjJak/edit?tab=t.0

希望这款工具能成为简化您深层链接实现过程的第一步。我们将持续致力于为 iOS 平台提供 Web 检查支持,并在 iOS 和 Android 两个平台上都提供应用内检查支持!

8e2da0ae1352c6d00d2329fa0469bc11.png

Share.invoke 支持

Android 平台之前缺少文本字段和视图上的默认分享按钮,但在本次发布中我们已经将其添加进来。这是我们持续努力的见证,旨在确保每个平台上的所有默认上下文菜单按钮都可用。您可以通过 PR #107578 持续关注进展情况。

  • PR #107578

    https://github.com/flutter/flutter/issues/107578

Native Assets 功能

如果您对 Flutter 与 Flutter 代码中其它语言函数的互操作性感兴趣,您现在可以在 Android 平台上通过 Native Assets 执行 FFI 调用。随时了解我们支持 Native Assets 功能的持续进展。

  • 持续进展

    https://github.com/flutter/flutter/issues/129757

纹理层混合组合 (TLHC) 模式

Flutter 3.19 版本能够让 Google 地图和文本输入放大镜在 TLHC 模式下运行,这意味着您的应用将获得更好的性能表现。如果您正在使用 Google 地图,我们鼓励您测试这些变化,并向我们分享反馈!

这项工作不包括在框架或引擎层面的提交中,但您可以在 PR 5408 中查看相关内容,以及测试 TLHC 模式的步骤。

  • PR 5408

    https://github.com/flutter/packages/pull/5408

自定义系统范围内的文本选择工具栏按钮

Android 应用可以添加自定义的文本选择菜单项,这些菜单项将会出现在所有文本选择菜单中,即用户长按文本时弹出的菜单。Flutter 的 TextField 选择菜单现已包含此功能。

iOS

Flutter iOS 原生字体

现在,Flutter 在 iOS 上的文本看起来更加紧凑且更接近原生风格。按照 Apple 的设计指南,iOS 上较小的字体应该排列得更为宽松以便在移动设备上阅读时更加舒适,而较大的字体则应设计得更为紧凑,以节省空间。在此之前,无论字号大小,我们都错误地采用了较为宽松的小字号样式。而现在,默认情况下 Flutter 将为较大的文本使用更为紧凑的字体样式。

8a53554f965a3cd8842dc253f9680637.png

DevTools

DevTools 更新

此版本的一些 DevTools 亮点包括:

  • 在 DevTools 中添加了一个新功能和屏幕,用于验证 Android 平台上的深层链接设置。

  • 在 "增强跟踪" (Enhance Tracing) 菜单中添加了一个选项,用于跟踪平台渠道活动。这对于带有插件的应用很有帮助。

    8badb2255c0415e10b871b290d94bb44.png

  • 性能和 CPU 分析器屏幕现在即使在没有连接任何应用的情况下也可访问。之前通过 DevTools 保存的性能数据或 CPU 配置文件,现在可以从这些屏幕上重新加载并查看。

  • VS Code 中的 Flutter 侧边栏现在增加了新功能: 如果当前项目尚未启用新平台,用户可以直接启用新的平台。此外,侧边栏上的 DevTools 菜单现在提供一个选项,可让用户在外部浏览器窗口中打开 DevTools。

如要了解更多信息,您可以查看 DevTools 2.29.0、2.30.0 和 2.31.0 的版本说明。

  • 2.29.0

    https://docs.flutter.dev/tools/devtools/release-notes/release-notes-2.29.0

  • 2.30.0

    https://docs.flutter.dev/tools/devtools/release-notes/release-notes-2.30.0

  • 2.31.0

    https://docs.flutter.dev/tools/devtools/release-notes/release-notes-2.31.0

桌面设备

Windows Arm64 支持

感谢社区成员 @pbo-linaro 的不懈努力,Flutter 在 Windows 平台上现已初步支持 Arm64 架构。这一初始支持为 Flutter 应用能在 Windows Arm64 设备上更加高效且高性能地原生运行奠定了基础。尽管这项支持功能仍在开发阶段 (您可以在 GitHub 问题 #62597 上跟踪进展),但这标志着 Flutter 开发者为在更广泛的 Windows 设备上优化其运用的运行迈出了卓越的一步。

  • @pbo-linaro

    https://github.com/pbo-linaro

  • #62597

    https://github.com/flutter/flutter/issues/62597

生态系统

必须提供隐私清单

Flutter 现在在 iOS 平台上包含了隐私清单,以满足即将出台的 Apple 要求。

  • 即将出台的 Apple 要求

    https://developer.apple.com/support/third-party-SDK-requirements/

Flutter 和 Dart Package 

生态系统的进展

如果您之前错过了相关信息,欢迎查看我们关于 Flutter 和 Dart Package 生态系统进展的博客文章。

  • Flutter 和 Dart Package 生态系统进展

    http://docs.google.com/flutter/progress-of-the-flutter-package-ecosystem-17cded9a0703

弃用和重大变更

放弃对 Windows 7

和 Windows 8 的支持

随着 Flutter 的不断发展,我们在 Dart 3.3 和 Flutter 3.19 版本终止了对 Windows 7 和 Windows 8 的支持,进而专注于最新的技术。这一调整符合 Microsoft 的战略,使我们能够在现代操作系统上进一步增强 Flutter 的功能。我们深知这可能需要开发者们做出相应的调整,并承诺将全力协助您顺利完成过渡。此举为在受支持的 Windows 版本上构建一个更安全、高效且功能丰富的开发环境奠定了基础。感谢您的理解和努力适应,在 Flutter 生态系统中,我们将继续携手创新,共同进步。

Impeller 抖动效果标志

Flutter 3.16 稳定版的版本说明中指出,全局标志 Paint.enableDithering 已被移除。有关详细信息,您可以参阅官方网站上的重大变更公告。

  • 移除

    https://github.com/flutter/engine/pull/46745

  • 重大变更公告

    https://docs.flutter.dev/release/breaking-changes/paint-enableDithering

放弃对 iOS 11 的支持

由于调用特定网络 API 时会出现运行时崩溃问题,Flutter 不再支持 iOS 11。这意味着针对 Flutter 3.16.6 及更高版本构建的应用将无法在此类设备上运行。

  • 运行时崩溃

    https://github.com/flutter/flutter/issues/136060

弃用自动渲染模式

在此版本的重大变更中,我们宣布了一些已弃用的 API,这些 API 对 v3.16 之后的版本不再有效。如要查看所有受影响的 API 及其附加背景信息和迁移指南,您可以参阅此版本的弃用指南。许多弃用的 API 都受到 Flutter fix 的支持,包括 IDE 中的快速修复功能。您可以通过 dart fix 命令行工具来批量评估并应用修复。

  • 重大变更

    https://docs.flutter.dev/release/breaking-changes

  • 此版本的弃用指南

    https://docs.flutter.dev/release/breaking-changes/3-16-deprecations

  • Flutter fix

    https://docs.flutter.dev/development/tools/flutter-fix

非常感谢社区一如既往地为测试工作所做的贡献,帮助我们识别以上重大变更。如要了解详情,您可以查看 Flutter 的重大变更政策。

  • 为测试工作所做的贡献

    https://github.com/flutter/tests/blob/master/README.md

  • Flutter 的重大变更政策

    https://github.com/flutter/flutter/wiki/Tree-hygiene#handling-breaking-changes

在此次发布中,除了已支持的 flutter 和 flutter_test package 之外,flutter_driver package 也首次被纳入了弃用策略之中。

即刻体验

我们特意在本文的开篇部分强调了贡献者的数量。Flutter 日益发展成一个强大且高效的工具套件,这证明了我们卓越的社区成员的奉献精神与辛勤努力。我们向每一个人表示由衷的感谢。

如要深入了解此版本的具体内容,您可以参阅 Flutter 3.19 的版本说明和更新日志,获取新增功能的详尽列表。

  • 版本说明和更新日志

    https://docs.flutter.dev/release/release-notes/release-notes-3.19.0

Flutter 3.19 以及 Dart 3.3 已在稳定渠道中正式发布。开始使用最新版 Flutter 踏上全新开发旅程,就像运行 "flutter upgrade" 一样轻松。

  • Dart 3.3

    https://medium.com/dartlang/new-in-dart-3-3-extension-types-javascript-interop-and-more-325bf2bf6c13


4fdd8cbeea680490521add746db16bec.gif 点击屏末  | 即刻访问 Flutter 开发者社区中文资源

a06c3734c1de2297e349d6bc8218d6aa.png

fd9c0d019c20887403b020e1cf899d9a.png

2fb857e43f1441385343fa5958717140.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1567348.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

3.5 CSS常用样式

3.5.1 CSS背景 3.5.1将介绍如何在网页上应用背景颜色和背景图像。和CSS背景有关的属性如表所示。 1. 背景颜色background-color CSS中的background-color属性用于为所有HTML元素指定背景颜色。例如&#xff1a; p{background-color:gray} /*将段落元素的背景颜色设置为灰色*…

人工智能|深度学习——基于Xception实现戴口罩人脸表情识别

一、项目背景 近年来&#xff0c;随着人工智能技术的不断发展&#xff0c;人脸表情识别已经成为了计算机视觉领域中的重要研究方向之一。然而&#xff0c;在当前的疫情形势下&#xff0c;佩戴口罩已经成为了一项必要的防疫措施&#xff0c;但是佩戴口罩会遮挡住人脸的部分区域&…

政安晨:【Keras机器学习实践要点】(十五)—— KerasTuner 简述

目录 导言 调整模型结构 定义搜索空间 开始搜索 查询结果 重新训练模型 调整模型训练 调整数据预处理 重新训练模型 指定调整目标 以内置指标为目标 以自定义指标为目标 调整端到端工作流程 将 Keras 代码分开 政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1…

CVE-2021-30517:Type confusion bug in LoadSuperIC

前言 这个漏洞是一个比较老的洞&#xff0c;之所以分析这个漏洞&#xff0c;只要是想再学习一下 ICs 相关的知识。并该漏洞的利用是利用与 String/Function 之间的混淆&#xff0c;比较有意思。 环境搭建 sudo apt install python git checkout 7d5e5f6c62c3f38acee12dc4114…

端口映射如何测试?

端口映射是一项网络技术&#xff0c;用于将外部网络中的数据流量映射到内部网络中的特定端口或设备上。通过端口映射&#xff0c;可以实现远程访问内部网络中的设备或应用程序&#xff0c;使其能够在外部网络中得到访问。本文将介绍端口映射测试及其应用场景。 2. 【天联】组网…

【大数据存储】实验4 NoSQL数据库

实验4 NoSQL数据库 NoSQL数据库的安装和使用实验环境&#xff1a; Ubuntu 22.04.3 Jdk 1.8.0_341 Hadoop 3.2.3 Hbase 2.4.17 Redis 6.0.6 mongdb 6.0.12 mogosh 2.1.0 Redis 安装redis完成 新建终端启动redisredis-server新建一个终端redis-cli 建表操作 尝…

详细分析Vuex中的mapGetters

目录 1. 基本知识2. Demo13. Demo2 1. 基本知识 优势和用途 简化代码&#xff1a;用 mapGetters 和 mapState&#xff0c;可以简化组件中对于 Vuex 中状态和 getter 的映射工作&#xff0c;减少了重复的代码书写更易读&#xff1a;组件中直接使用映射的计算属性&#xff0c;使…

项目5-验证码案例

选择使用Google的开源项目Kaptcha来实现. 1.Kaptcha 插件介绍 Kaptcha 是Google的⼀个高度可配置的实⽤验证码⽣成⼯具. 代码: http://code.google.com/p/kaptcha/ ⽹上有很多⼈甚⾄公司基于Google的kaptcha进⾏了⼆次开发. 我们选择⼀个直接适配SpringBoot的 开源项目 htt…

吴恩达:AI 智能体的四种模式

一、背景 吴恩达在《What’s next for AI agentic workflows ft》分享中提出 AI 智能体的四种模式。 反思&#xff08;Reflection&#xff09;&#xff1a; LLM 检查自己的工作&#xff0c;以提出改进方法。 使用工具&#xff08;Tool use&#xff09;&#xff1a;LLM 拥有…

MySQL数据库 数据库基本操作(二):表的增删查改(上)

1. CRUD CRUD 即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首字母缩写,就是数据库基本操作中针对表的一系列操作. 2. 新增(create) -->insert 语法: insert into 表名 [列名1,列名2…] values (val1,val2…) [注意] 列名可以没有,如果没有列名…

【深度学习|Pytorch】torchvision.datasets.ImageFolder详解

ImageFolder详解 1、数据准备2、ImageFolder类的定义transforms.ToTensor()解析 3、ImageFolder返回对象 1、数据准备 创建一个文件夹&#xff0c;比如叫dataset&#xff0c;将cat和dog文件夹都放在dataset文件夹路径下&#xff1a; 2、ImageFolder类的定义 class ImageFol…

大日志精选案例四:某省级大数据集团日志审计优化实战解析

“在集团日常运营中&#xff0c;数据安全始终是我们关注的重点。过去&#xff0c;数据量大、处理速度慢&#xff0c;导致日志数据难以迅速获取和分析&#xff0c;影响业务决策。但自从引入聚铭大日志解决方案后&#xff0c;系统日志和用户行为数据都得到了高效处理与存储。该方…

SpringCloud Hystrix 服务熔断、服务降级防止服务雪崩

文章目录 SpringCloud Hystrix 熔断器、服务降级防止服务雪崩需求背景引入依赖启动类加Hystrix注解接口配置熔断常规配置超时断开错误率熔断请求数熔断限流 可配置项HystrixCommand.Setter参数Command Properties 服务降级 SpringCloud Hystrix 熔断器、服务降级防止服务雪崩 H…

网络安全基础之网络协议与安全威胁

OSI(OpenSystem Interconnect)&#xff0c;即开放式系统互联。 一般都叫OSI参考模型&#xff0c;是ISO(国际标准化组织)组织在1985年研究的网络互联模型。 网络协议的简介&#xff1a; 定义&#xff1a;协议是网络中计算机或设备之间进行通信的一系列规则集合。 什么是规则?…

迅饶科技 X2Modbus 网关 GetUser 信息泄露漏洞复现

0x01 产品简介 X2Modbus是上海迅饶自动化科技有限公司Q开发的一款功能很强大的协议转换网关, 这里的X代表各家不同的通信协议, 2是T0的谐音表示转换, Modbus就是最终支持的标准协议是Modbus协议。用户可以根据现场设备的通信协议进行配置,转成标准的Modbus协议。在PC端仿真…

【考研数学】1800基础做完了,如何无缝衔接660和880❓

基础题做完&#xff0c;不要急着强化 首先做一个复盘&#xff0c;1800基础的正确率如何&#xff0c;如果70%以下的话&#xff0c;从错题入手&#xff0c;把掌握不扎实的地方再进行巩固&#xff0c;否则接下来做题的话效率会很低。 接下来考虑习题衔接的问题。 关于线代复习的…

(免费分享)基于微信小程序自助停取车收费系统

本项目的开发和制作主要采用Java语言编写&#xff0c;SpringBoot作为项目的后端开发框架&#xff0c;vue作为前端的快速开发框架&#xff0c;主要基于ES5的语法&#xff0c;客户端采用微信小程序作为开发。Mysql8.0作为数据库的持久化存储。 获取完整源码&#xff1a; 大家点赞…

mac | Windows 本地部署 Seata2.0.0,Nacos 作为配置中心、注册中心,MySQL 存储信息

1、本人环境介绍 系统 macOS sonama 14.1.1 MySQL 8.2.0 &#xff08;官方默认是5.7版本&#xff09; Seata 2.0.0 Nacos 2.2.3 2、下载&数据库初始化 默认你已经有 Nacos、MySQL&#xff0c;如果没有 Nacos 请参考我的文章 &#xff1a; Docker 部署 Nacos&#xff08;单机…

基于51单片机和MAX1898的智能手机充电器设计

**单片机设计介绍&#xff0c;基于51单片机和MAX1898的智能手机充电器设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于51单片机和MAX1898的智能手机充电器设计概要 一、引言 随着智能手机的普及&#xff0c;其电池续航…

人工智能会拥有反思能力吗?

一、背景 人工智能是否能拥有真正的反思能力&#xff0c;目前仍在探索和发展之中。虽然现有的AI系统可以在一定程度上进行自我学习、自我调整和优化&#xff0c;但是它们的“反思”还远未达到人类意义上的深度和全面性。 传统的人工智能系统依赖于预设的算法和模型&#xff0c…