0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

關于Google Flutter 3更新內容

谷歌開發(fā)者 ? 來源:谷歌開發(fā)者 ? 作者:谷歌開發(fā)者 ? 2022-06-22 16:13 ? 次閱讀

作者 / Kevin Jamaul Chisholm, Technical Program Manager for Dart and Flutter at Google

又到了 Flutter 穩(wěn)定版發(fā)布時間,我們無比自豪地宣布推出 Flutter 3!僅 3 個月前,我們宣布了 Flutter 對 Windows 的支持?,F(xiàn)在,我們再次懷著激動的心情宣布,繼 Windows 之后,F(xiàn)lutter 現(xiàn)已穩(wěn)定支持 macOS 和 Linux!

我們總計合并了 5,248 條 PR,感謝各位 Flutter 貢獻者的辛勤工作!

此版本中激動人心的升級包括: 更新了 Flutter 對 macOS 和 Linux 的支持,性能得到了顯著提升,針對移動設備和 web 端的更新,以及諸多其他功能!此外,我們還帶來了關于減少對舊版 Windows 提供支持的消息,以及幾條重大變更。下面讓我們直奔主題吧!

全桌面平臺生產就緒

Linux 和 macOS 平臺的支持已進入穩(wěn)定狀態(tài),內含下列功能:

級聯(lián)菜單和 macOS 系統(tǒng)菜單欄支持

現(xiàn)在您可以使用 PlatformMenuBar widget 在 macOS 上創(chuàng)建平臺渲染的菜單欄,支持插入僅限該平臺使用的菜單,并控制 macOS 應用菜單中的顯示內容。

完整支持全桌面平臺多國文本輸入

全部三種桌面平臺完整支持多國文本輸入,包括使用文本輸入法編輯器 (IME) 的語言,如中文、日文和韓文。同時支持第三方輸入法,如搜狗 (Sogou)、谷歌日文輸入法 (Google Japanese Input) 等。

全桌面平臺無障礙服務

Flutter 支持 Windows、macOS 和 Linux 平臺的無障礙服務,包括屏幕文字閱讀、無障礙導航和顏色反轉等。

macOS 平臺默認使用通用二進制文件

在 Flutter 3 中,F(xiàn)lutter macOS 桌面應用會被構建為通用二進制文件,從而原生支持使用 Intel 處理器的 Mac 電腦和搭載 Apple Silicon 的新設備。

不再支持使用 Windows 7/8 進行開發(fā)

此版本將建議的 Windows 開發(fā)版本提升為 Windows 10。雖然我們不會禁止使用舊版本 (Windows 7、Windows 8、Windows 8.1) 進行開發(fā),但由于 Microsoft 不再支持這些舊版本,我們僅會針對這些版本提供有限的測試。盡管我們會盡力為舊版本提供支持,但還是建議您升級版本。

注意: 在 Windows 7 和 8 上依然可以運行 Flutter 應用,此更改只影響我們推薦使用的開發(fā)環(huán)境。

移動端更新

我們針對移動端的更新包括:

支持可折疊設備

Flutter 3 支持可折疊移動設備。通過由 Microsoft 牽頭的合作,讓大家可以使用新的功能和 widget 在可折疊設備上創(chuàng)建動感、愉悅的體驗。 作為合作的一部分,MediaQuery 現(xiàn)在包含一個 DisplayFeature 列表,用以描述設備組件狀態(tài),包括鉸鏈、折疊狀態(tài)和屏幕劉海等。此外,DisplayFeatureSubScreen widget 包含的子 widget 的位置現(xiàn)在不會與 DisplayFeature 的邊界重疊,并且已經用于框架的默認對話框和彈出窗口,使 Flutter 默認即可動態(tài)適應這些元素的位置。

非常感謝 Microsoft 團隊。另外我們還要特別鳴謝 @andreidiaconu 所做出的貢獻!

歡迎大家嘗試 Surface Duo 模擬器示例,其中包含了 Flutter Gallery 的一個特別派生版本,以便了解 Flutter 在雙屏中的實際運行情況:

支持 iOS 可變刷新率

Flutter 現(xiàn)已在使用 ProMotion 顯示屏的 iOS 設備上支持可變刷新率,包括 iPhone 13 Pro 和 iPad Pro。在這些設備上 Flutter 應用的渲染刷新率可達 120 Hz,而之前最高為 60 Hz,這使得滾動等快速動畫的觀感體驗更加流暢。

簡化 iOS 發(fā)布

我們?yōu)?flutter build ipa 命令添加了新選項,使得 iOS 應用發(fā)布更加簡便。在您準備好分發(fā)至 TestFlight 或 App Store 時,請運行 flutter build ipa 構建 Xcode 歸檔 (.xcarchive 文件) 和應用軟件包 (.ipa 文件)。您可選擇添加 --export-method ad-hoc、--export-method development 或 --export-method enterprise 選項。應用軟件包構建完成后,即可通過 Apple Transport macOS 應用將其上傳至 Apple,或使用 xcrun altool 在命令行中完成上傳 (運行 man altool 獲取 App Store Connect API 密鑰驗證說明)。上傳完成后,您的應用即可發(fā)布至 TestFlight 或 App Store。在完成應用顯示名稱、應用圖標等初始 Xcode 項目設置后,您在發(fā)布應用時就無需再打開 Xcode 了。

Gradle 版本更新

使用 Flutter 工具創(chuàng)建新項目時,您或許已經注意到,生成的文件現(xiàn)在使用了最新版本的 Gradle 和 Android Gradle 插件。對于現(xiàn)有的項目而言,您需要手動將 Gradle 版本升級至 7.4,Android Gradle 插件版本升級至 7.1.2。

停止更新 32 位 iOS/iOS 9/iOS 10

按照 2022 年 2 月 2.10 穩(wěn)定版發(fā)布的公告,F(xiàn)lutter 對 32 位 iOS 設備以及 iOS 9 和 10 的支持即將結束。這一變化會影響到 iPhone 4S、iPhone 5、iPhone 5C 以及 iPad 第二、三、四代設備。Flutter 3 是最后一個支持上述 iOS 版本和設備的穩(wěn)定版本。

Web 端更新

我們針對 web 端的更新包括:

圖像解碼

在瀏覽器支持的情況下,F(xiàn)lutter web 現(xiàn)在可以自動檢測并使用 ImageDecoder API。到目前為止,大多數(shù)基于 Chrome 的瀏覽器都添加了此 API,如 Chrome、Edge、Opera、Samsung Browser 等。

這個新 API 使用瀏覽器內置的圖像編解碼器在主線程之外異步解碼圖像。這使得圖像解碼速度提高 2 倍,而且完全不會阻塞主線程,消除了所有之前由圖像引起的卡頓現(xiàn)象。

Web 應用的生命周期

Flutter web 應用的新生命周期 API 提升了靈活性,可實現(xiàn)從托管 HTML 頁面控制 Flutter 應用的引導程序,并支持使用 Lighthouse 分析您的應用的性能表現(xiàn)。這適用于許多用例,包括以下常被開發(fā)者們提及的場景:

啟動畫面。

加載指示器。

在 Flutter 應用之前顯示的純 HTML 交互式加載頁。

工具更新

我們針對 Flutter 和 Dart 工裝的更新內容包括:

Lint package 更新

Lint package 2.0 版現(xiàn)已發(fā)布:

使用 flutter create 生成的 Flutter 3 應用將自動啟用 2.0 版 Lint 套件。我們建議大家運行 flutter pub upgrade --major-versions flutter_lints,將現(xiàn)有應用、package 和插件遷移到 2.0 版,以遵循 Flutter 最新、最優(yōu)的最佳實踐。 Lint 2.0 版中新增的大多數(shù)警告都帶有自動修復功能。因此,當您在應用的 pubspec.yaml 中升級至最新 package 版本后,即可在代碼庫中運行 dart fix --apply 自動修復大多數(shù) Lint 警告 (某些警告仍需部分手動操作)。對于尚未使用 package:flutter_lints 的應用、package 或插件,建議開發(fā)者按照遷移指南遷移至最新版本

性能提升感謝開源貢獻者 knopp,局部重繪已經在支持此功能的 Android 設備上實現(xiàn)。在我們的本地測試中,此功能在 Pixel 4XL 設備上將依照 backdrop_filter_perf 基準測試的幀柵格化時間的平均值、90 百分位值和 99 百分位值縮減了 5 倍?,F(xiàn)在,iOS 設備和較新版本的 Android 設備上都已實現(xiàn)在單一矩形臟區(qū)出現(xiàn)時進行局部重繪。

我們進一步提升了簡單用例中不透明度動畫的性能。具體而言,當 Opacity widget 只包含單個渲染原語時,通常由 Opacity widget 調用的 saveLayer 方法可以省略。在為此優(yōu)化構建的基準測試中,此用例下的柵格化時間提升了一個數(shù)量級。在今后的版本中,我們計劃為更多場景應用此優(yōu)化。

在開源貢獻者 JsouLiang 的努力下,引擎的光柵和界面線程在 Android 和 iOS 上的運行優(yōu)先級已經高于其他線程 (比如 Dart VM 的后臺垃圾回收線程)。在我們的基準測試中,這使得幀構建平均時間提速約 20%。

在第 3 版發(fā)布之前,光柵緩存的準入策略只查看圖片中繪制算子的數(shù)量 (假設任何具有多個算子的圖片都應該進入緩存)。但這會導致引擎消耗內存來緩存渲染速度極快的圖片。此版本引入新的機制,根據(jù)所包含繪制算子的成本來估計圖像渲染的復雜性。在我們的性能測試中,使用新機制作為柵格緩存準入策略可以減少內存用量,而不會降低性能。

感謝開源貢獻者 ColdPaleLight,他修復了 iOS 上由于幀調度 bug 而導致少量動畫幀丟失的問題。感謝所有報告此問題并提供掉幀復現(xiàn)視頻的每一個人。

Impeller我們一直致力于解決 iOS 和其他平臺上的早期卡頓問題。在 Flutter 3 中,您可以在 iOS 上預覽一個名為 Impeller 的實驗性渲染后端。Impeller 會在引擎構建時預編譯一組較為小巧、簡單的著色器,從而避免在應用運行時編譯,而后者是造成 Flutter 卡頓的主要原因。Impeller 尚未作好投產準備,距離完成也還有一段距離。目前 Impeller 尚未實現(xiàn) Flutter 的所有功能特性,但我們對它在 flutter/gallery 應用中實現(xiàn)的保真度和性能感到滿意,并且很高興地在這里和大家分享開發(fā)進度。特別是,在 Gallery 應用的過場動畫中,即便最差的幀速度也比之前快大約 20 倍。

Impeller 可以帶標記在 iOS 上使用。如果您要試用 Impeller,可以傳遞 --enable-impeller 標記至 flutter run,或將 Info.plist 文件中的 FLTEnableImpeller 標記為 true。Impeller 的開發(fā)會繼續(xù)在 Flutter 主渠道進行,我們希望在未來的版本中提供進一步更新。 Android 上的內聯(lián)廣告使用 google_mobile_ads package 時,您應該可以感受到用戶關鍵交互 (如頁面之間的滾動和切換) 的性能有所提升。在新興市場廣為流行的設備上,這種性能提升尤其明顯。最棒的是,您無需更改任何代碼!

在具體實現(xiàn)方面,F(xiàn)lutter 現(xiàn)在是異步組合 Android 視圖 (即通常所說的平臺視圖)。這意味著 Flutter 的光柵線程無需等待 Android 視圖渲染?,F(xiàn)在,F(xiàn)lutter 引擎使用它管理的 OpenGL 紋理將視圖顯示在屏幕上。

更多令人興奮的更新

我們針對 Flutter 生態(tài)系統(tǒng)的其他更新包括:

Material 3Flutter 3 支持新一代 Material Design,即 Material Design 3。Flutter 3 提供 Material 3 的可選支持,包括動態(tài)顏色、最新顏色系統(tǒng)和字體等 Material You 功能,還包含許多組件的更新,以及在 Android 12 中引入的新觸摸波紋設計和拉伸滾動等全新視覺效果。我們歡迎大家通過全新的 "將枯燥無味的 Flutter 應用變得生動有趣" 的 Codelab 來嘗試 Material 3 的功能特性。請參閱 API 文檔,詳細了解如何選用上述新功能特性,以及哪些組件支持 Material 3。另請關注 Material 3 Umbrella issue 了解最新開發(fā)進展。

主題擴展

借助 "主題擴展 (Theme extension)",F(xiàn)lutter 現(xiàn)支持向 Material 庫中的 ThemeData 添加任何內容。您現(xiàn)在可以指定 ThemeData.extensions,而無需 (在 Dart 中) 擴展 ThemeData 并重新實現(xiàn)其 copyWith、lerp 和其他方法。另外,package 開發(fā)者也可以提供 ThemeExtension。請參閱官方文檔了解詳情,并查看 GitHub 上的相關示例。

廣告

我們知道對于發(fā)布商來說,征求用戶同意對個性化廣告,以及應對 Apple 的 "應用追蹤透明度 (App Tracking Transparency, ATT)" 要求非常重要。

為了支持這些需求,Google 提供了 "用戶消息平臺 (User Messaging Platform, UMP)" SDK,取代了之前的開源 Consent SDK。在即將發(fā)布的 Google 移動廣告 SDK (Flutter) 中,我們會增加對 UMP (用戶消息平臺) SDK 的支持,讓發(fā)布商能夠征求用戶同意。如需了解詳情,請在 pub.dev 上查看 google_mobile_ads package 頁面。

重大變更

在持續(xù)擴展和改進 Flutter 的過程中,我們會盡量把重大變更的數(shù)量維持在最低限度。Flutter 3 包含以下重大變更

總結

按照 Statista 和 SlashData 等分析機構的統(tǒng)計,F(xiàn)lutter 依然是最受歡迎的跨平臺界面工具包,我們能保持這種地位,社區(qū)的貢獻功不可沒,對此,Google Flutter 團隊向大家致以由衷敬意。期待與各位社區(qū)成員共同努力,繼續(xù)提供由社區(qū)驅動的工具,幫助大家為用戶創(chuàng)造出更多令人愉悅的體驗!

原文標題:一起看 I/O | Flutter 3 更新詳解

文章出處:【微信公眾號:谷歌開發(fā)者】歡迎添加關注!文章轉載請注明出處。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Google
    +關注

    關注

    5

    文章

    1752

    瀏覽量

    57333
  • Linux
    +關注

    關注

    87

    文章

    11182

    瀏覽量

    208524
  • WINDOWS
    +關注

    關注

    3

    文章

    3510

    瀏覽量

    88232

原文標題:一起看 I/O | Flutter 3 更新詳解

文章出處:【微信號:Google_Developers,微信公眾號:谷歌開發(fā)者】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    鴻蒙Flutter實戰(zhàn):10-常見問題集合

    更新的問題,導致無法全屏。 3. 模擬器 模擬器與真機有較大差異,如果出現(xiàn)模擬器異常情況,優(yōu)先確實真機是否正常運行,以排除模擬器自身問題。 4. debug 版本運行報錯 Error while
    發(fā)表于 10-23 17:05

    鴻蒙Flutter實戰(zhàn):09-現(xiàn)有Flutter項目支持鴻蒙

    # 鴻蒙Flutter實戰(zhàn):現(xiàn)有Flutter項目支持鴻蒙 ## 背景 原來使用Flutter開發(fā)的項目,需要適配鴻蒙。 ## 環(huán)境搭建 見文章[鴻蒙Flutter適配指南],
    發(fā)表于 10-23 16:36

    鴻蒙Flutter實戰(zhàn):08-如何調試代碼

    Attach 模式,一個是普通的運行模式。 3.查看日志 查看日志,可以在運行Flutter處的IDE調試控制臺查看 Flutter 項目日志,可以使用 hdc hilog 命令或DevEco 查看系統(tǒng)日志
    發(fā)表于 10-23 16:29

    鴻蒙Flutter實戰(zhàn):07混合開發(fā)

    項目處,引入Flutter模塊。 其優(yōu)點是方便維護和更新Flutter代碼,也可以使用熱重載。缺點是需要搭建Flutter開發(fā)環(huán)境,開發(fā)人員需要掌握
    發(fā)表于 10-23 16:00

    鴻蒙Flutter實戰(zhàn):06-使用ArkTs開發(fā)Flutter鴻蒙插件

    # 使用 ArkTs 開發(fā) Flutter 鴻蒙平臺插件 本文講述如何開發(fā)一個 Flutter 鴻蒙插件,如何實現(xiàn) Flutter 與鴻蒙的混合開發(fā),以及雙端消息通信。 ## Flutte
    發(fā)表于 10-22 21:56

    鴻蒙Flutter實戰(zhàn):05-使用第三方插件

    .dev/github/gitee/ophm查找使用的插件,如果插件已經適配鴻蒙,則可以像其他Flutter插件一樣正常使用。 2.如果插件尚未適配鴻蒙,則需要尋找適配的插件庫。配置方法如下 3.如果
    發(fā)表于 10-22 21:54

    鴻蒙Flutter實戰(zhàn):02-Windows環(huán)境搭建踩坑指南

    環(huán)境搭建 1. 下載Flutter SDK,配置環(huán)境變量 鴻蒙 Flutter SDK 需要在 Gitee 下載。目前建議下載 dev 分支代碼。 需要配置以下用戶變量 注意鴻蒙開發(fā)需要安裝Java
    發(fā)表于 10-22 15:05

    鴻蒙Flutter實戰(zhàn):01-搭建開發(fā)環(huán)境

    準備工作 1.安裝 DevEco Studio NEXT IDE, 注意版本應該是 Next,當前最新的是 Beta3 2.安裝Git, 如果要同時適配安卓,需要安裝Android Studio
    發(fā)表于 10-21 19:35

    四大Google更新將登陸Samsung設備

    在近期的 Galaxy Unpacked 發(fā)布會上,我們宣布了四項即將在 Samsung 最新設備中推出的 Google 更新,這些設備包括 Galaxy Z Flip6、Z Fold6 和最新款 Galaxy 手表。
    的頭像 發(fā)表于 08-09 16:58 ?668次閱讀

    使用google-translate和wwe合并后無法使用google-tts怎么解決?

    ] AEL_IO_ABORTI (16208) GOOGLE_TTS: TTS text = hola, soy demoI (16228) AUDIO_ELEMENT: [tts_http-0x3
    發(fā)表于 06-28 06:05

    Flutter首次亮相Google Cloud Next大會

    Flutter 團隊在近期首次參加了 Google Cloud Next 大會,這意味著 Flutter 在開發(fā)社區(qū)中的影響力正在日益增長。
    的頭像 發(fā)表于 05-09 10:15 ?422次閱讀

    淺談兼容 OpenHarmony 的 Flutter

    OpenHarmony SIG 組織在 Gitee 開源了兼容 OpenHarmony 的 Flutter。該組織主要用于孵化 OpenHarmony 相關的開源生態(tài)項目。 ? ? ▲ 倉庫地址
    的頭像 發(fā)表于 02-02 15:22 ?536次閱讀
    淺談兼容 OpenHarmony 的 <b class='flag-5'>Flutter</b>

    了解 Flutter 3.16 功能更新

    作者 / Kevin Chisholm 我們在季度 Flutter 穩(wěn)定版發(fā)布會上帶來了 Flutter 3.16,此版本包含諸多更新:?Material 3 成為新的默認主題、為 A
    的頭像 發(fā)表于 12-16 15:55 ?764次閱讀
    了解 <b class='flag-5'>Flutter</b> 3.16 功能<b class='flag-5'>更新</b>

    如何在Torizon平臺使用Flutter來開發(fā)用戶界面

    Google 面向 Android, iOS 推出的跨平臺移動應?開發(fā)框架 Flutter 可以構建高質量的原??戶界?,并可以擴展支持 Web 和桌面應用。Flutter 尚未官方支持嵌入式系統(tǒng),但目前 Sony 和 Ubun
    發(fā)表于 12-07 10:39 ?567次閱讀
    如何在Torizon平臺使用<b class='flag-5'>Flutter</b>來開發(fā)用戶界面

    Google 無障礙功能更新 | 第二期

    為了讓每個人都能體驗精彩世界,Google 無障礙團隊始終致力于打造更舒適的日常生活、更完善的無障礙體驗。我們希望通過專題系列視頻 "Google 無障礙功能更新"?與您分享近期無障礙產品、功能
    的頭像 發(fā)表于 11-27 18:40 ?503次閱讀