本文翻譯自:Shaping the Future of Digital Experience - UI Framework Performance
原文作者:Qt Group 產品營銷經理 Matteo Capelletti
校審:Rita Qian
在之前的博文中,我們討論了UI框架的基本元素——即一套現成的解決方案,可以用于快速跨平臺開發并有效縮短UI應用程序的上市時間。在本篇博文中,我們就來探討一下如何實現流暢無縫的性能,讓您的應用程序能夠真正在市場上打動用戶。但首先,我們需要明確什么是“UI應用程序”,以及它與其他類型的可視化軟件(如視頻游戲或設計創作工具)的區別。
所謂的“UI應用程序”
盡管人們常常以為自己知道“UI應用程序”是什么,但對于到底哪些應用程序才可以被稱為UI應用程序存在一定的誤解。這種誤解可能會對我們選擇正確的開發框架來創建UI應用程序產生負面影響。
考慮到圖形界面是UI應用程序的一個重要方面,但它只是眾多方面之一。UI應用程序不僅僅是在屏幕上渲染的圖形,而是一個可視化界面,用于實時運行于后端的數據、服務和函數。通常情況下,它也不是那種在整個屏幕上呈現單個場景,消耗所有可用的系統資源的獨立軟件,而是一個各類UI元素的捆綁包,如嵌入式應用程序和服務、小部件、圖表、交互區域和視圖,它們共存于一個或多個屏幕上,以并行的方式為用戶提供所需的多任務信息。在UI應用程序中,多個進程會競爭有限的系統資源,例如內存、運算能力、存儲,通常也包括低功耗設備的電能。我們會談到UI框架提供的一些智能解決方案,利用它們來有效地處理并發任務。但首先,我們需要更詳細地了解UI應用程序的結構和邏輯。
UI布局是一種分層結構,由來自多個應用程序的多個圖層構建而成,占據屏幕的不同部分。用戶可以通過觸摸和其他形式的輸入與UI層進行交互,直到達到他們想要的應用程序或功能。不同類型的交互可以實現不同的操作,例如觸摸圖標或按鈕可以打開應用程序或服務,滑動可以改變視圖,縮放、滾動等操作都是由屏幕的特定部分上的具體動作觸發的。
此外,UI應用程序通常具有高度的可定制性,可以讓用戶更改整體外觀風格、移動小部件以及調整UI的主題和布局,同時保持UI的整體預期功能不變。
UI行為是通過狀態的形式進行設定的,從而確定用戶可以與之交互的不同視圖。UI的邏輯由狀態之間的導航定義,即從給定狀態通過什么操作可以到達哪些狀態。然而,即使在簡單的應用程序中,狀態的數量也可能非常大。因此,需要使用靈活、可靠和高效的工具來處理狀態和控制應用程序流程,例如專用的狀態機框架提供的工具。
為了在用戶界面上吸引用戶的注意力,過渡效果需要以平滑、漸進的方式展示,避免突然的視覺變化帶來的不適感和干擾。這時候,緩動函數就派上用場了,它能夠設定狀態如何隨時間變化而轉換,使得UI的狀態轉換過程更加溫和、自然。
UI應用程序具有獨特的內部結構、視覺布局和邏輯流程,與其他類型的可視化軟件(如設計創作工具或視頻游戲)存在根本性的區別。因此,我們需要UI框架提供專門的工具來正確、高效地管理。雖然UI應用程序的特性可能不斷增多,但必須使用適當的工具來實現它們,以確保其符合良好的用戶體驗。
在開發方面,UI框架提供了一系列庫和解決方案,用于為PC應用程序創建界面。同時在部署方面,它還提供了UI引擎,也就是runtime,用于在終端設備上運行應用程序。例如,智能手表、智能座艙或智能家居電器的顯示屏都包含一個框架UI引擎實例,用于在特定的硬件和軟件架構上運行應用程序。
盡管設備種類多樣,但它們的計算能力和能源供應通常卻十分有限,令人驚奇的是,無論底層系統如何,單個運行時引擎都能夠控制每個功能和服務的生命周期,管理它們之間的交互,以及對每個任務進行資源分配。UI引擎是專門用于處理具有特定性能需求的競爭進程而設計的。
數字設備的資源通常受限,處理和存儲能力也非常有限。相比用于家庭娛樂或游戲的強大臺式電腦,為電器、汽車和可穿戴設備提供驅動的設備能力更為有限。然而,硬件并不是應用程序最終性能和圖形質量的唯一決定因素。UI框架可以提供一系列現成的解決方案,以在受限環境中優化資源消耗,實現在低占用空間的同時啟用多并行服務和高級圖形。
對于UI軟件而言,允許單個應用程序使用所有可用資源或具有無限的啟動時間是相當罕見的。嵌入式設備,如消費電子產品、工業、醫療和汽車應用程序,需要快速啟動,并且只有極少的計算資源可以并行運行多個功能和服務。為了限制資源使用,UI框架提供了一系列優化機制,確保平滑的性能和無縫的響應能力。
UI框架在底層采用事件驅動架構,利用事件來觸發功能、在跨解耦服務間通信。這種架構使得應用程序在未使用時保持空閑,最大程度地減少所需的內存、CPU和GPU的數量。這釋放了可以動態分配給其他應用程序的計算資源,同時也有利于在供應有限時節約能源。動態內存加載和卸載與UI虛擬化相結合,允許只在需要時(即按需)將UI元素加載到內存中。
-
-
-
-
緩存圖像、字體和其他資源,有助于加速這些資源的加載和顯示
-
-
提供包括鏈接時(link-time)優化的編譯選項,以便在編譯時尋找整個程序的優化空間。
總之,UI框架通過優化UI的內部流程和減少內存占用來幫助開發者提高UI的效率和響應性。但這還不是全部。
雖然應用程序原型可以展示應用程序在桌面PC上的預期行為和外觀,但這是一種不受限制的環境,并不能夠反映實際的資源需求。因此,在這個階段很少有應用程序可以順利地移植到實際的目標平臺上。
性能分析是指收集有關應用程序使用CPU、內存和網絡帶寬等資源的數據,并對這些數據進行分析,以便識別應用程序的瓶頸、延遲和內存泄漏等問題。例如,復雜的3D模型、高密度著色器和廣泛使用的著色器效果可能會導致應用程序無法以每秒60幀的穩定速度運行。性能分析器有助于檢測此類渲染瓶頸,發現待優化的代碼、消耗過多資源的后臺任務、內存泄漏、未優化的圖形和過于頻繁的UI更新等問題。如果沒有正確的工具,這些問題需要花費很長時間和不必要的精力才能被檢測到。
當實際的目標設備不可用時,UI框架的模擬器可以模擬應用程序在目標設備上的行為和運算能力,幫助開發者檢查應用程序的性能和行為,就像在實際設備上運行一樣。
在硬件尚未確定或需要重新考慮的情況下(例如芯片短缺),跨平臺UI框架可以確保軟件開發和部分測試可以在不受影響的情況下進行,從而最大程度地減少對上市時間的影響。
質量保證
除了流暢的性能外,應用程序如果還需要符合安全可靠的行業標準并遵守通知機構設置的要求,為了實現自動化測試過程、識別未經測試的代碼并檢測代碼不良特征或編碼指令偏離,集成質量保證工具的存在將大有裨益。尤其是在安全關鍵應用和相關認證領域(例如醫療),這種質量保證組件變得至關重要。
深圳市優飛迪科技有限公司成立于2010年,是一家專注于產品開發平臺解決方案與物聯網技術開發的國家級高新技術企業。
十多年來,優飛迪科技在數字孿生、工業軟件尤其仿真技術、物聯網技術開發等領域積累了豐富的經驗,并在這些領域擁有數十項獨立自主的知識產權。同時,優飛迪科技也與國際和國內的主要頭部工業軟件廠商建立了戰略合作關系,能夠為客戶提供完整的產品開發平臺解決方案。
優飛迪科技技術團隊實力雄厚,主要成員均來自于國內外頂尖學府、并在相關領域有豐富的工作經驗,能為客戶提供“全心U+端到端服務”。
