bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

提升Flutter體驗的方法是什么-創新互聯

本篇內容主要講解“提升Flutter體驗的方法是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“提升Flutter體驗的方法是什么”吧!

成都創新互聯公司主營依蘭網站建設的網絡公司,主營網站建設方案,APP應用開發,依蘭h5成都微信小程序搭建,依蘭網站營銷推廣歡迎依蘭等地區企業咨詢目標

過度的丟幀從視覺上會出現卡頓現象,體現在用戶滑動操作不流暢;頁面加載耗時過長容易中斷操作流程;Flutter部分exception會導致發生異常代碼后面的邏輯沒有走到從而造成邏輯bug甚至白屏。這些問題很容易考驗用戶耐心,引起用戶反感。

所以我們制定以下三個指標作為線上Flutter性能穩定性標準:

  1. 頁面滑動流暢度

  2. 頁面加載耗時(首屏時長+可交互時長)

  3. Exception率

最終目標是讓這些數據指標驅動Flutter用戶體驗升級。

頁面滑動流暢度

我們先大概了解下屏幕渲染流程:CPU先把UI對象轉變GPU可以識別的信息存儲進displaylist列表,GPU執行繪圖指令來執行displaylist,取出相應的圖元信息,進行柵格化渲染,顯示到屏幕上,這樣一個循環的過程實現屏幕刷新。

閑魚客戶端采用的Native、Flutter混合技術方案,Native頁面FPS監控采用集團高可用方案,Flutter頁面是否可以直接采用這套方案監控?

普遍的FPS檢測方案Android端采用的是Choreographer.FrameCallBack,IOS采用的是CADisplayLink注冊的回調,原理是類似的,在每次發出Vsync信號,并且CPU開始計算的時候執行到對應的回調,這個時候表示屏幕開始一次刷新,計算固定時間內屏幕渲染次數來得到fps。(這種方式只能檢測到CPU卡頓,對于GPU的卡頓是無法監控到的)。由于這兩種方法都是在主線程做檢測處理,而Flutter的屏幕繪制是在UI TaskRunner中進行,真正的渲染操作是在GPU TaskRunner中,關于詳細的Flutter線程問題可以參考閑魚之前的文章:深入理解Flutter引擎線程模式。

這里我們得出結論:Native的FPS檢測方法并不適用于Flutter。

Flutter官方給我們提供了 Performance Overlay作為檢測幀率工具,可否直接拿來用?

提升Flutter體驗的方法是什么

上圖顯示了Performance Overlay模式下的幀率統計,可以看到,Flutter分開計算GPU 和UI TaskRunner。UI Task Runner被Flutter Engine用于執行Dart root isolate代碼,GPU Task Runner被用于執行設備GPU的相關調用。通過對Flutter engine源碼分析,UI frame time是執行window.onBeginFrame所花費的總時間。GPU frame time是處理CPU命令轉換為GPU命令并發送給GPU所花費的時間。

這種方式只能在debug和profile模式下開啟,沒有辦法作為線上版本的fps統計。但是我們可以通過這種方式獲得啟發,通過監聽Flutter頁面刷新回調方法handleBeginFrame()、handleDrawFrame()來計算實際FPS。

0

  • Future<Null> main() async {

  •  FlutterError.onError = (FlutterErrorDetails details) async {

  •    Zone.current.handleUncaughtError(details.exception, details.stack);

  •  };

  •  runZoned<Future<Null>>(() async {

  •    runApp(new HomeApp());

  •  }, onError: (error, stackTrace) async {

  •    await _reportError(error, stackTrace);

  •  });

  • }

  • 其中,FlutterError.onError只會捕獲Flutter framework層的error和exception,官方建議將這個方法按照自己的exception捕獲上報需求定制。在實踐過程中,我們遇到很多不會對用戶體驗產生任何影響的exception會被頻繁觸發,這類沒有改善意義的exception可以添加白名單過濾上報。

    02

    效果

    有了線上exception的監控,可以及早發現隱患,獲取問題堆棧信息,方便定位bug,提示整體穩定性。

到此,相信大家對“提升Flutter體驗的方法是什么”有了更深的了解,不妨來實際操作一番吧!這里是創新互聯網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

新聞標題:提升Flutter體驗的方法是什么-創新互聯
瀏覽地址:http://vcdvsql.cn/article28/hogjp.html

成都網站建設公司_創新互聯,為您提供用戶體驗App開發面包屑導航商城網站關鍵詞優化定制開發

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都app開發公司