| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> Flutter 3更新详解 -> 正文阅读 |
|
[移动开发]Flutter 3更新详解 |
Flutter 3 实现了 Flutter 以移动端为中心扩展到多平台的产品规划,并在今年 Google I/O大会的主题演讲上正式发布,继Flutter 2.10支持Windows 之后,此次发布提供了对 macOS 和 Linux 桌面端的稳定版支持,同时包括 Firebase 集成的改进,增加了与生产力和性能相关的新特性,并对 Apple 芯片提供了支持。 此版本中激动人心的升级包括: 更新了 Flutter 对 macOS 和 Linux 的支持,性能得到了显著提升,针对移动设备和 web 端的更新,以及诸多其他功能!此外,我们还带来了关于减少对旧版 Windows 提供支持的消息,以及几条重大变更。下面让我们直奔主题吧! 全桌面平台生产就绪Linux 和 macOS 平台的支持已进入稳定状态,内含下列功能: 级联菜单和 macOS 系统菜单栏支持现在您可以使用 △ 级联菜单示意 完整支持全桌面平台多国文本输入全部三种桌面平台完整支持多国文本输入,包括使用文本输入法编辑器 (IME) 的语言,如中文、日文和韩文。同时支持第三方输入法,如搜狗 (Sogou)、谷歌日文输入法 (Google Japanese Input) 等。 全桌面平台无障碍服务Flutter 支持 Windows、macOS 和 Linux 平台的无障碍服务,包括屏幕文字阅读、无障碍导航和颜色反转等。 macOS 平台默认使用通用二进制文件在 Flutter 3 中,Flutter macOS 桌面应用会被构建为通用二进制文件,从而原生支持使用 Intel 处理器的 Mac 电脑和搭载 Apple Silicon 的新设备。 不再支持使用 Windows 7/8 进行开发此版本将建议的 Windows 开发版本提升为 Windows 10。虽然我们不会禁止使用旧版本 (Windows 7、Windows 8、Windows 8.1) 进行开发,但由于 Microsoft 不再支持这些旧版本,我们仅会针对这些版本提供有限的测试。尽管我们会尽力为旧版本提供支持,但还是建议您升级版本。 注意: 在 Windows 7 和 8 上依然可以运行 Flutter 应用,此更改只影响我们推荐使用的开发环境。 移动端更新我们针对移动端的更新包括: 支持可折叠设备Flutter 3 支持可折叠移动设备。通过由 Microsoft 牵头的合作,让大家可以使用新的功能和 widget 在可折叠设备上创建动感、愉悦的体验。 作为合作的一部分,MediaQuery 现在包含一个 DisplayFeature 列表,用以描述设备组件状态,包括铰链、折叠状态和屏幕刘海等。此外,DisplayFeatureSubScreen widget 包含的子 widget 的位置现在不会与 非常感谢 Microsoft 团队。另外我们还要特别鸣谢@andreidiaconu所做出的贡献! 欢迎大家尝试 Surface Duo 模拟器示例,其中包含了 Flutter Gallery 的一个特别派生版本,以便了解 Flutter 在双屏中的实际运行情况: 支持 iOS 可变刷新率Flutter 现已在使用 ProMotion 显示屏的 iOS 设备上支持可变刷新率,包括 iPhone 13 Pro 和 iPad Pro。在这些设备上 Flutter 应用的渲染刷新率可达 120 Hz,而之前最高为 60 Hz,这使得滚动等快速动画的观感体验更加流畅。请查看 官方文档 了解详情。 简化 iOS 发布我们为 Gradle 版本更新使用 Flutter 工具创建新项目时,您或许已经注意到,生成的文件现在使用了最新版本的 Gradle 和 Android Gradle 插件。对于现有的项目而言,您需要手动将 Gradle 版本升级至 7.4,Android Gradle 插件版本升级至 7.1.2。 停止更新 32 位 iOS/iOS 9/iOS 10按照 2022 年 2 月 2.10 稳定版发布的公告,Flutter 对 32 位 iOS 设备以及 iOS 9 和 10 的支持即将结束。这一变化会影响到 iPhone 4S、iPhone 5、iPhone 5C 以及 iPad 第二、三、四代设备。Flutter 3 是最后一个支持上述 iOS 版本和设备的稳定版本。 如需详细了解此项变更,请参阅 RFC: 终止对 32 位 iOS 设备的支持。 Web 端更新我们针对 web 端的更新包括: 图像解码在浏览器支持的情况下,Flutter web 现在可以自动检测并使用 ImageDecoder API。到目前为止,大多数基于 Chrome 的浏览器都添加了此 API,如 Chrome、Edge、Opera、Samsung Browser 等。 这个新 API 使用浏览器内置的图像编解码器在主线程之外异步解码图像。这使得图像解码速度提高 2 倍,而且完全不会阻塞主线程,消除了所有之前由图像引起的卡顿现象。 Web 应用的生命周期Flutter web 应用的新生命周期 API 提升了灵活性,可实现从托管 HTML 页面控制 Flutter 应用的引导程序,并支持使用 Lighthouse 分析您的应用的性能表现。这适用于许多用例,包括以下常被开发者们提及的场景:
请阅读官方文档 “自定义 web 应用初始化” 了解详细信息。 工具更新我们针对 Flutter 和 Dart 工装的更新内容包括: Lint package 更新Lint package 2.0 版现已发布: 使用 Lint 2.0 版中新增的大多数警告都带有自动修复功能。因此,当您在应用的 性能提升感谢开源贡献者 knopp,局部重绘已经在支持此功能的 Android 设备上实现。在我们的本地测试中,此功能在 Pixel 4XL 设备上将依照 我们 进一步提升 了简单用例中不透明度动画的性能。具体而言,当 在开源贡献者 JsouLiang 的努力下,引擎的光栅和界面线程在 Android 和 iOS 上的运行优先级已经高于其他线程 (比如 Dart VM 的后台垃圾回收线程)。在我们的基准测试中,这使得帧构建平均时间提速 约 20%。 在第 3 版发布之前,光栅缓存的准入策略只查看图片中绘制算子的数量 (假设任何具有多个算子的图片都应该进入缓存)。但这会导致引擎消耗内存来缓存渲染速度极快的图片。此版本 引入新的机制,根据所包含绘制算子的成本来估计图像渲染的复杂性。在我们的性能测试中,使用新机制作为栅格缓存准入策略可以 减少内存用量,而不会降低性能。 感谢开源贡献者 ColdPaleLight,他修复了 iOS 上由于 帧调度 bug 而导致少量动画帧丢失的问题。感谢所有报告此问题并提供掉帧复现视频的每一个人。 Impeller我们一直致力于解决 iOS 和其他平台上的早期卡顿问题。在 Flutter 3 中,您可以在 iOS 上预览一个名为 Impeller 的实验性渲染后端。Impeller 会在引擎构建时预编译一组 较为小巧、简单的着色器,从而避免在应用运行时编译,而后者是造成 Flutter 卡顿的主要原因。Impeller 尚未作好投产准备,距离完成也还有一段距离。目前 Impeller 尚未实现 Flutter 的所有功能特性,但我们对它在 flutter/gallery 应用中实现的保真度和性能感到满意,并且很高兴地在这里和大家分享开发进度。特别是,在 Gallery 应用的过场动画中,即便最差的帧速度也比之前快大约 20 倍。 Impeller 可以带标记在 iOS 上使用。如果您要试用 Impeller,可以传递 Android 上的内联广 告使用 google_mobile_ads package 时,您应该可以感受到用户关键交互 (如页面之间的滚动和切换) 的性能有所提升。在新兴市场广为流行的设备上,这种性能提升尤其明显。最棒的是,您无需更改任何代码! 在具体实现方面,Flutter 现在是异步组合 Android 视图 (即通常所说的 平台视图)。这意味着 Flutter 的光栅线程无需等待 Android 视图渲染。现在,Flutter 引擎使用它管理的 OpenGL 纹理将视图显示在屏幕上。 更多令人兴奋的更新我们针对 Flutter 生态系统的其他更新包括: Material 3Flutter 3 支持新一代 Material Design,即 Material Design 3。Flutter 3 提供 Material 3 的可选支持,包括动态颜色、最新颜色系统和字体等 Material You 功能,还包含许多组件的更新,以及在 Android 12 中引入的新触摸波纹设计和拉伸滚动等全新视觉效果。我们欢迎大家通过全新的 “将枯燥无味的 Flutter 应用变得生动有趣” 的 Codelab 来尝试 Material 3 的功能特性。请参阅 API 文档,详细了解如何选用上述新功能特性,以及哪些组件支持 Material 3。另请关注 Material 3 Umbrella issue 了解最新开发进展。 主题扩展借助 “主题扩展 (Theme extension)”,Flutter 现支持向 Material 库中的 广告我们知道对于发布商来说,征求用户同意对个性化广告,以及应对 Apple 的 “应用追踪透明度 (App Tracking Transparency, ATT)” 要求非常重要。 为了支持这些需求,Google 提供了 “用户消息平台 (User Messaging Platform, UMP)” SDK,取代了之前的开源 Consent SDK。在即将发布的 Google 移动广告 SDK (Flutter) 中,我们会增加对 UMP (用户消息平台) SDK 的支持,让发布商能够征求用户同意。如需了解详情,请在 pub.dev 上查看 google_mobile_ads package 页面。 重大变更在持续扩展和改进 Flutter 的过程中,我们会尽量把重大变更的数量维持在最低限度。Flutter 3 包含以下重大变更:
如果您正在使用上述 API,请参阅 Flutter.dev 上的 迁移指南。 总结按照 Statista 和 SlashData 等分析机构的统计,Flutter 依然是最受欢迎的跨平台界面工具包,我们能保持这种地位,社区的贡献功不可没,对此,Google Flutter 团队向大家致以由衷敬意。期待与各位社区成员共同努力,继续提供由社区驱动的工具,帮助大家为用户创造出更多令人愉悦的体验! 最后
|
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 0:22:53- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |