日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

掘力計劃第 20 期:Flutter 混合開發的混亂之治

來源: 責編: 時間:2023-08-05 11:44:35 5045觀看
導讀在掘力計劃系列活動第20場,《Flutter 開發實戰詳解》作者,掘金優秀作者,Github GSY 系列目負責人戀貓的小郭分享了Flutter 混合開發的混亂之治。Flutter 基于自研的 Skia 引擎實現了跨平臺高性能渲染,但其獨立的渲染層帶

在掘力計劃系列活動第20場,《Flutter 開發實戰詳解》作者,掘金優秀作者,Github GSY 系列目負責人戀貓的小郭分享了Flutter 混合開發的混亂之治。u2N28資訊網——每日最新資訊28at.com

u2N28資訊網——每日最新資訊28at.com

Flutter 基于自研的 Skia 引擎實現了跨平臺高性能渲染,但其獨立的渲染層帶來了與 Android 混合開發的技術挑戰。經過幾年的演進,Android 目前提供了多種混合渲染方案,但都無法完美解決問題,且共存于 Flutter API 中,增加了復雜性。本文將深入解析 Flutter Android 混合開發面臨的困境,以及開發者應對策略。u2N28資訊網——每日最新資訊28at.com

Flutter 獨立的渲染機制u2N28資訊網——每日最新資訊28at.com

u2N28資訊網——每日最新資訊28at.com

Flutter 能夠跨平臺高性能渲染的關鍵在于其自研的 Skia 圖形渲染引擎。Skia 通過自身的 renderers、GPU 線程等直接與 GPU 層進行交互,實現繪圖功能。這使得 Flutter 的渲染層可以獨立于 Android 的原生 UI 線程之外。u2N28資訊網——每日最新資訊28at.com

這種獨立的渲染機制給 Flutter 帶來很大優勢,不依賴原生視圖層即可實現高效的跨平臺渲染。但是同時也導致了 Flutter 要與原生視圖進行混合開發時的困難。u2N28資訊網——每日最新資訊28at.com

如果用一個簡單的類比,Flutter 更像是一個游戲引擎。想要往 Unity 這類游戲引擎中插入原生 Android 視圖,就像往 HTML 中直接嵌入一個 Canvas 元素一樣困難。這需要游戲引擎提供針對性的接口與機制,將不同的 UI 系統進行「適配」。u2N28資訊網——每日最新資訊28at.com

u2N28資訊網——每日最新資訊28at.com

針對這個問題,Android 和 Flutter 社區也經歷了多年的探索,提供了一系列的混合渲染方案。u2N28資訊網——每日最新資訊28at.com

Android 混合渲染方案演進u2N28資訊網——每日最新資訊28at.com

Android 在支持 Flutter 混合開發時,經歷了多種技術方案的演進過程。現階段主要存在以下三種混合渲染技術:u2N28資訊網——每日最新資訊28at.com

VD 模式u2N28資訊網——每日最新資訊28at.com

u2N28資訊網——每日最新資訊28at.com

VD 全稱 Virtual Display,表示利用虛擬顯示的方式進行混合渲染。其關鍵是采用 VirtualDisplay 將原生視圖渲染到一個內存緩沖區中,得到相應的渲染紋理。u2N28資訊網——每日最新資訊28at.com

Flutter 通過特定的 API 調用,可以獲取這個渲染紋理,并集成到自身的 Scene 中進行統一渲染。u2N28資訊網——每日最新資訊28at.com

VD 最大的 特點就是渲染的控件其實不是真實存在屏幕位置,而是在內存,所以容易有觸摸和鍵盤問題。u2N28資訊網——每日最新資訊28at.com

HC 模式 u2N28資訊網——每日最新資訊28at.com

u2N28資訊網——每日最新資訊28at.com

HC 全稱 Hybrid Composition。它的思路是直接將原生視圖通過 Add View 的方式添加到 Flutter 的 View 層次中,進行物理層面的視圖混合。u2N28資訊網——每日最新資訊28at.com

u2N28資訊網——每日最新資訊28at.com

這種直接混合模式可以保存原生視圖的用戶交互,并且可與 Flutter 視圖自由疊加。但是由于需要跨線程同步渲染,可能會引入一定的性能開銷。u2N28資訊網——每日最新資訊28at.com

TLHC 模式u2N28資訊網——每日最新資訊28at.com

u2N28資訊網——每日最新資訊28at.com

TLHC 即 Texture Layer Hybrid Composition。這是 Android 團隊後期提出的方案,試圖結合 VD 和 HC 兩種模式的優點。u2N28資訊網——每日最新資訊28at.com

TLHC 會通過 hook 原生視圖的 onDraw 方法,將其渲染輸出重定向到內存中,再提供給 Flutter 作為紋理。這樣既避免了線程同步,也可以像 HC 那樣自由布局。u2N28資訊網——每日最新資訊28at.com

但是 TLHC 不支持 SurfaceView 等基于獨立 Surface 的視圖類型。對于一些依賴 SurfaceView 的邏輯,如地圖或視頻播放,TLHC 存在兼容性問題。u2N28資訊網——每日最新資訊28at.com

共存的模式帶來的困境u2N28資訊網——每日最新資訊28at.com

經過幾年的演進,Flutter 現在已經可以通過上述三種模式支持 Android 混合開發了。但它們都存在自身的優劣勢,無法解決所有的問題場景。u2N28資訊網——每日最新資訊28at.com

u2N28資訊網——每日最新資訊28at.com

更重要的是,這三種模式現在同時存在于 Flutter 的 API 中,可以被開發者同時使用:u2N28資訊網——每日最新資訊28at.com

Plain Text
// VD模式
initAndroidVew()

// HC模式
initSurfaceAndroidView()

// TLHC模式
initAndroidView() u2N28資訊網——每日最新資訊28at.com

這其實帶來了很大的復雜性。首先,開發者需要自行理解不同模式的適用場景,進行正確的調用。u2N28資訊網——每日最新資訊28at.com

其次,隨著 Flutter 版本的演進,默認的模式也在變化。例如在早期只有 VD,到 1.2 提供 HC,3.0 又引入 TLHC。這意味著在版本升級后,你的混合視圖可能會在不知情的情況下發生渲染模式變化,導致問題。u2N28資訊網——每日最新資訊28at.com

再者,TLHC 存在對 SurfaceView 的兼容性問題。就算默認使用 TLHC,后續引入 SurfaceView 也可能觸發問題。u2N28資訊網——每日最新資訊28at.com

u2N28資訊網——每日最新資訊28at.com

除此之外,不同模式的性能開銷也存在差異。HC 和 TLHC 的額外渲染消耗需要評估。模式切換也可能影響渲染性能。u2N28資訊網——每日最新資訊28at.com

綜上所述,困擾 Flutter Android 混合開發的主要問題在于:u2N28資訊網——每日最新資訊28at.com

  1. 存在多種共存的渲染模式,各有特性,選擇復雜
  2. 模式之間兼容性存在,可能引入難以察覺的問題
  3. 性能開銷和穩定性難以保證

這已經成為困擾 Flutter 混合渲染的主要困境。u2N28資訊網——每日最新資訊28at.com

開發者應對策略u2N28資訊網——每日最新資訊28at.com

面對復雜的混合渲染困境,Flutter 開發者也形成了一些應對策略:u2N28資訊網——每日最新資訊28at.com

  1. 優先使用 TLHC 模式,能覆蓋更多場景
  2. 調用時詳細指定模式,不要依賴默認值
  3. 注意版本變更帶來的潛在問題
  4. 留意是否引入了 SurfaceView 等不兼容場景
  5. 評估不同模式的性能開銷區別
  6. 通過自身封裝控制模式變更范圍
  7. 提前測試不同模式的兼容性

當然,這需要開發者對不同混合渲染模式有足夠的理解,才能做出正確的技術選型。實際使用中也需要關注模式帶來的兼容性風險,建立健壯的自測方案。u2N28資訊網——每日最新資訊28at.com

未來 Flutter 混合渲染模式是否還會繼續增多也需要持續跟進。理想情況下,如果能夠演進出一個統一的混合解決方案,將大大簡化 Android 平臺的混合開發。u2N28資訊網——每日最新資訊28at.com

總結u2N28資訊網——每日最新資訊28at.com

Flutter 基于 Skia 的獨立渲染機制,給其在 Android 平臺的混合開發帶來了挑戰。經過幾年探索,Android 形成了多種混合渲染方案。但都無法完美解決問題,它們的共存也增加了復雜性。u2N28資訊網——每日最新資訊28at.com

開發者需要深入理解不同模式,并有針對性地進行場景選擇和風險評估。未來仍需要社區持續努力,簡化這一關鍵的技術難題,以進一步發揮 Flutter 的跨平臺優勢。u2N28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-80-0.html掘力計劃第 20 期:Flutter 混合開發的混亂之治

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 摸魚心法第一章——和配置文件說拜拜

下一篇: 2023 年的 Node.js 生態系統

標簽:
  • 熱門焦點
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
亚洲午夜精品| 亚洲国产日韩欧美| 欧美日韩亚洲一区二区三区在线观看 | 国产一区二区高清视频| 精品成人在线视频| 日韩天天综合| 篠田优中文在线播放第一区| 久久久欧美一区二区| 欧美激情亚洲视频| 国产精品美女久久久久av超清| 国内精品久久久久影院 日本资源 国内精品久久久久伊人av | 欧美一区二区精品久久911| 久久婷婷成人综合色| 欧美日韩国产一区二区| 国产女精品视频网站免费 | 狠狠色噜噜狠狠狠狠色吗综合| 亚洲精品女人| 欧美在线视频全部完| 欧美高清视频www夜色资源网| 国产精品美女久久久久久久| 在线观看一区二区视频| 亚洲一区二区三区久久| 巨胸喷奶水www久久久免费动漫| 欧美日韩一级片在线观看| 国产在线不卡| 亚洲少妇一区| 农夫在线精品视频免费观看| 国产精品午夜在线观看| 亚洲欧洲综合另类| 久久av在线| 欧美午夜精品久久久久久人妖| 狠狠综合久久av一区二区小说| 亚洲视频在线观看网站| 久久综合给合久久狠狠色| 国产精品99一区二区| 亚洲第一精品夜夜躁人人爽| 亚洲伊人网站| 欧美精品日韩综合在线| 极品尤物av久久免费看| 亚洲综合成人婷婷小说| 欧美另类综合| 亚洲第一在线| 久久国产日韩欧美| 国产精品国产三级国产专播精品人 | 国产日韩精品在线| 夜夜嗨av一区二区三区网站四季av | 久久久久国产精品人| 国产精品av久久久久久麻豆网| 亚洲丶国产丶欧美一区二区三区 | 欧美性感一类影片在线播放| 亚洲国产另类精品专区| 久久精品视频播放| 国产精品午夜视频| 亚洲午夜久久久久久久久电影网| 欧美黄色片免费观看| 黄色成人在线网站| 欧美在线你懂的| 国产精品腿扒开做爽爽爽挤奶网站| 99re6热在线精品视频播放速度 | 国产曰批免费观看久久久| 亚洲免费一级电影| 欧美四级在线| 99re这里只有精品6| 欧美成人中文字幕| 亚洲高清在线视频| 久久网站免费| 国内精品免费午夜毛片| 欧美一级网站| 国产欧美日韩一区二区三区在线| 亚洲淫片在线视频| 欧美午夜宅男影院| 亚洲天堂免费观看| 欧美午夜免费| 中日韩在线视频| 欧美日韩一区二区免费视频| 亚洲美女在线看| 欧美激情综合色| 亚洲精品中文字幕女同| 欧美韩国日本一区| 亚洲精品免费电影| 欧美另类69精品久久久久9999| 亚洲片在线观看| 欧美高清日韩| 999在线观看精品免费不卡网站| 欧美另类专区| 亚洲免费电影在线| 欧美日韩视频在线| 亚洲视频一区二区| 国产精品久线观看视频| 亚洲欧美综合精品久久成人| 国产精品永久免费| 久久成人在线| 樱花yy私人影院亚洲| 麻豆91精品| 亚洲精品中文字| 欧美私人网站| 欧美一二三视频| 狠狠做深爱婷婷久久综合一区| 老司机久久99久久精品播放免费| 亚洲国产欧美不卡在线观看| 欧美精品一区二区视频| 宅男噜噜噜66一区二区| 国产精品自拍三区| 久久久免费精品| 亚洲精品影院| 国产精品久久综合| 久久九九全国免费精品观看| 亚洲福利精品| 欧美日韩在线播放三区| 亚洲欧美综合| 亚洲大胆美女视频| 欧美日韩国产专区| 午夜免费在线观看精品视频| 韩国一区电影| 欧美精品videossex性护士| 亚洲桃花岛网站| 国产一级久久| 欧美精品色综合| 午夜日韩在线| 亚洲福利国产精品| 国产精品成人免费视频| 久久国产婷婷国产香蕉| 亚洲日本欧美在线| 国产精品毛片一区二区三区| 久久er99精品| 亚洲乱码久久| 国产午夜精品久久久久久免费视 | 国产精品激情| 久久久精品动漫| 亚洲美女av在线播放| 国产美女精品一区二区三区 | 国产精品欧美久久| 久久久久在线观看| 9久re热视频在线精品| 国产日韩专区在线| 欧美欧美全黄| 久久九九精品99国产精品| 99综合电影在线视频| 狠狠入ady亚洲精品经典电影| 欧美日韩国产色综合一二三四 | 国产日韩欧美一区| 欧美喷潮久久久xxxxx| 欧美一区二区三区男人的天堂 | 国内精品久久久久影院 日本资源| 欧美激情精品久久久久久变态| 亚洲自拍都市欧美小说| 亚洲高清在线观看| 国产九九精品视频| 欧美久久婷婷综合色| 久久久www免费人成黑人精品| 一区二区三区国产精品| 亚洲成人在线网站| 国产欧美三级| 欧美日产国产成人免费图片| 久久激情网站| 亚洲一级一区| 亚洲精品久久久久久下一站 | 欧美区在线播放| 久久―日本道色综合久久| 亚洲自拍偷拍福利| 亚洲精品影院在线观看| 激情五月婷婷综合| 国产精品狼人久久影院观看方式| 欧美成人伊人久久综合网| 欧美尤物巨大精品爽| 亚洲午夜激情免费视频| 亚洲激情在线激情| 黄色日韩网站视频| 国产欧美欧洲在线观看| 欧美日韩综合视频| 欧美精品18+| 浪潮色综合久久天堂| 久久www免费人成看片高清| 亚洲香蕉网站| 99国产精品视频免费观看| 亚洲国产影院| 亚洲大片免费看| 激情文学一区| 国产日产欧产精品推荐色 | 亚洲久久成人| 91久久夜色精品国产九色| 影音先锋在线一区| 国内成+人亚洲+欧美+综合在线| 国产精品入口尤物| 国产精品久久激情| 欧美色一级片| 欧美日韩在线三级| 欧美日韩精品一二三区| 欧美精品午夜| 欧美精品一区二区三区在线看午夜| 美女诱惑一区| 老司机aⅴ在线精品导航| 久久久噜噜噜久久人人看| 久久国产欧美| 久久九九全国免费精品观看| 欧美亚洲一区在线| 欧美一区激情| 久久精品91| 久久精品道一区二区三区| 欧美中文在线观看| 久久久www免费人成黑人精品 | 欧美日韩国产一区| 欧美日韩国产色综合一二三四 | 国产精品国产三级欧美二区|