激情六月丁香婷婷|亚洲色图AV二区|丝袜AV日韩AV|久草视频在线分类|伊人九九精品视频|国产精品一级电影|久草视频在线99|在线看的av网址|伊人99精品无码|午夜无码视频在线

打造跨平臺UI,不要再犯這些方案架構(gòu)錯誤啦

發(fā)布時間:2024-01-04 09:38:32 瀏覽量:163次

隨著當今的設備及其各自的用戶接口(UI)變得更加先進,創(chuàng)建和產(chǎn)生這些UI也變得更具挑戰(zhàn)性,特別是為現(xiàn)代復雜設備建置UI通常更燒腦。無論如何,當你想要為特定的自定義嵌入式設備制作UI時,它可能是一項完全不同的挑戰(zhàn)性任務。

我們經(jīng)??吹介_發(fā)人員受限于各式各樣的問題,跌入常見的錯誤陷阱。本文將深入探討這些問題,并揭示開發(fā)人員在開發(fā)跨平臺UI時最常犯的6個與應用和解決方案架構(gòu)有關的錯誤。

錯誤#1:誤解內(nèi)存消耗和內(nèi)存利用

當開發(fā)人員將影像加載圖像內(nèi)存時,需要考慮的一些事項包括:需要快取的項目、加載元素的順序,以及如何建構(gòu)整體用戶體驗(UX)。性能問題(通常發(fā)生在較小的設備中)區(qū)分為實際和感知性能,例如,對于花費大量時間(實際性能)的操作,開發(fā)人員可以在屏幕上彈出預載的影像,讓用戶認為事情發(fā)生得更快(感知性能)。然而,解決這些問題需要到位的技術能力和工具。

以嵌入式Linux堆棧為例?,F(xiàn)成可用的底層操作系統(tǒng)(OS)可能得花超過10秒的時間啟動,而其上的普通Qt大約需要1秒鐘(圖1)??紤]到在這兩者之上的應用本身,總啟動時間總計約15秒。透過適當?shù)募记?、工具和?yōu)化,啟動應該只需要1~2秒鐘。

圖1 啟動序列的持續(xù)時間在未優(yōu)化和優(yōu)化的軟件堆棧之間差異很大。

在優(yōu)化時,開發(fā)人員必須減少性能遲滯,并了解真正的瓶頸和時間花費所在。這需要充份地理解內(nèi)存的使用方式、順序,以及如何優(yōu)化并具備相應能力。如果方案需要花費大量啟動時間,顯示優(yōu)化尚未到位,亦說明企業(yè)不重視績效,但我猜最終會如愿以償,因為客戶畢竟花了錢,對嗎?

錯誤#2:在部署到目標硬件之前于PC上進行開發(fā)

這是嵌入式開發(fā)最常見的原罪。設計師和工程團隊光是在PC上就花費太長時間開發(fā)嵌入式方案,然后,他們在項目周期中又太晚部署到目標硬件上。由于目標硬件通常是新的,而且在項目的早期階段團隊也還用不到,因此該問題通常會進一步惡化。

在項目實施過程中,設計缺陷、性能瓶頸、錯誤或問題的發(fā)現(xiàn)時間越晚,其修復成本就越高。將PC與嵌入式設備進行比較發(fā)現(xiàn),PC幾乎可以不限量地「揮霍」資源、內(nèi)存和功耗,以及其他基礎要素。如果項目在PC上運作良好,可能無法實現(xiàn)添加提升性能的特性,這會導致重新進行架構(gòu)設計和重新編寫大量軟件的主要問題。在PC桌面上完美運作的東西到了嵌入式設備上,并不一定就能正常運作或管理,忽略了這一點會影響產(chǎn)品上市時間、提高擁有成本,以及工程和維護成本。

那么有靈丹妙藥嗎?是的,從第一天開始就在目標設備上部署。投資在使這一切成為可能的工具,以確保整個團隊(包括設計師)都可以存取目標硬件,如果沒有可用的目標設備,請選擇接近該設備的產(chǎn)品,并從第一天開始部署。當今,有很多的現(xiàn)成參考硬件選擇,可讓你足夠接近目標設備,如果必須只在PC上進行開發(fā),那就在PC上開發(fā),但要做好重新編寫和延遲的心理準備。

錯誤#3:將完全渲染的設計壓縮到嵌入式設備中

為了在屏幕上顯示酷炫的三維(3D)元素,需要來自設計師的3D設計。設計師經(jīng)常會創(chuàng)造完全渲染的影像,相當于無數(shù)的多邊形("嘿!它可是在設計師的PC上運作得很好呢!")。這必須要由開發(fā)人員試圖將巨大的3D對象擠進小型設備中(圖2),它要不是使一切都變得非常緩慢,不然就是要求開發(fā)人員付出額外時間,或者兩弊兼具。

圖2 設計師提供完全渲染的影像,導致對于開發(fā)人員來說是過于復雜的元素。

此外,在2D UI上,開發(fā)人員和設計師有時會在UI上使用過于復雜的元素。挑戰(zhàn)是如何優(yōu)化不堪(down)、斑駁(shaving)和單調(diào)(slimming)的影像、元素和多邊形以適應小屏幕,同時保持相同的用戶體驗。在此過程中,通常都以性能和/或上市時間為代價。

錯誤#4:使用一種編碼語言,以一蓋全

客戶經(jīng)常用HTML5、Javascript和/或QML編寫過多的應用邏輯。上述都是聲明性的腳本技術,它們將使用與原生(native)C++不同的CPU資源,這通常會導致性能和維護問題。

從一開始就設計軟件架構(gòu)十分重要。先放上UI層,然后加上C++和更低分層(二進制執(zhí)行、原生二進制執(zhí)行,在這些分層上可能使用的GPU和CPU功率)。在設計軟件架構(gòu)時,選擇正確的組件非常重要。

性能良好的Qt應用有兩個主要部份:應用邏輯和大量數(shù)據(jù)以C++編寫;UI和使用者互動則使用更高級語言編寫,如QML。

錯誤#5:將更新和安全性視為特性

假設你正在研發(fā)一項項目,而且完成了大約三分之二的工作量,然后,客戶希望添加無線軟件更新和安全特性,這要求是錯誤的。更新和安全性并不是特性,它們是設計思維模式(mindset)和整體軟件架構(gòu)的核心部份。

客戶往往會將更新和安全性視為某段時間中已在其他特性實現(xiàn)的東西,但其實不然。開發(fā)人員必須提前計劃和思考,有什么樣的安全要求?軟件的哪些部份需要定期更新?怎么實施這項方案?如何驗證?它需要具有從第一天就開始的思維模式。例如,如果開發(fā)人員在對UI至關重要的韌體層上編寫內(nèi)容,則可能無法使用可用于更新應用層和UI的相同機制更新韌體。

錯誤#6:忽略優(yōu)化操作系統(tǒng)中的“工作空間”

本文已在前面部分討論過啟動性能的優(yōu)化(錯誤#1),但還有更多值得注意之處。

軟件工程的參考影像通常支持許多工具和功能特性,它們專為開發(fā)人員設計,以便輕松開始實施項目。這些工具都同時運作,但可決定使用或不使用它們,且應著手剝離不需要的東西,以達優(yōu)化。如果不這樣做,系統(tǒng)會在嵌入式設備上使用其有限的資源,在后臺執(zhí)行無用的進程,千萬不要受累于此。

許多嵌入式項目都使用Yocto配方創(chuàng)建的Yocto影像??上У氖牵捎跈n案層級各不相同,這些配方也很難用(圖3)。目前在市場上有許多供貨商,因此還需要密切地了解硬件驅(qū)動器、核心和系統(tǒng)其他部份的工作原理,這部份花在專業(yè)咨詢服務上的投資通常會在上市時間和性能提升方面得到投資報酬。

圖3 許多嵌入式項目使用基于Yocto的影像,它們是由復雜的Yocto配方創(chuàng)建,但并不容易使用。

熱門課程推薦

熱門資訊

請綁定手機號

x

同學您好!

您已成功報名0元試學活動,老師會在第一時間與您取得聯(lián)系,請保持電話暢通!
確定