當前位置:編程學習大全網 - 源碼下載 - Flutter性能優化

Flutter性能優化

1.圓角對性能的影響

盡量避免用Clipxxx組件,建議用BoxDecoration的image屬性實現,如果用Clipxxx組件,圓角取整後性能會提升。

2.減少重繪

根據場景合理使用RePaintBoundary,使繪制獨立於父布局,避免重繪,提升性能,但過度使用增加的圖層會帶來Raster合成的耗時。例如scrollview是滑動過程會導致所有的節點都重繪,可以在scrollview下壹層使用RePaintBoundary。

3.滾動步長插值器優化(了解)

官方的滾動差值器在出現小卡頓時,滾動步長會出現大的跳躍,導致體感上出現很明顯的抖動,優化步長偏移量算法與原生效果對齊。

4.開啟SurfaceView

官方推薦Flutter用SurfaceView ,因為SurfaceView與應用窗口內容分隔開,在專有硬件中合成,產生的中間副本少於TextureView,所以性能高,占用內存少,但是在混合棧遇到的問題需要突破

5.使用RepaintBoundary 提升頻繁重繪控件的性能。使用RelayoutBoundary提升頻繁修改大小,增刪的布局中也可以提升性能。

6.build中不要去寫大量的耗時邏輯,因為數據更新會觸發build的多次調用,在裏面做耗時邏輯會降低性能。

7.盡量使用statelessWidget代替statefulWidget,因為statefulWidget的銷毀重建會引起子widget的銷毀與重建。

8.解析json可以放到子線程線程中,開Isolate去解析,這樣,當返回數據特別大的時候也不會阻塞界面。

9.使用不變的組件的時候可以添加const,const組件不會進行build更新

10.由於flutter通過widget.runtimeType和key來判斷是否需要跟新組建,所以我們寫組件的時候盡量保持key不變,或者不寫key。對於壹些需要頻繁改變,例如新增、刪除、排序的最好加上key。如果type壹直,如果不寫key容易導致,element無法區分新舊widget,導致無法更新。

  • 上一篇:將源代碼與數據分開。
  • 下一篇:炒股K線圖用處大不大,如果不懂的話需要學習嗎?
  • copyright 2024編程學習大全網