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

高校合作1:010-59833514 ?咨詢(xún)電話(huà):400-810-1418 服務(wù)與監(jiān)督電話(huà):400-810-1418轉(zhuǎn)接2

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

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

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

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

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

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

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

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

在優(yōu)化時(shí),開(kāi)發(fā)人員必須減少性能遲滯,并了解真正的瓶頸和時(shí)間花費(fèi)所在。這需要充份地理解內(nèi)存的使用方式、順序,以及如何優(yōu)化并具備相應(yīng)能力。如果方案需要花費(fèi)大量啟動(dòng)時(shí)間,顯示優(yōu)化尚未到位,亦說(shuō)明企業(yè)不重視績(jī)效,但我猜最終會(huì)如愿以?xún)敚驗(yàn)榭蛻?hù)畢竟花了錢(qián),對(duì)嗎?

錯(cuò)誤#2:在部署到目標(biāo)硬件之前于PC上進(jìn)行開(kāi)發(fā)

這是嵌入式開(kāi)發(fā)最常見(jiàn)的原罪。設(shè)計(jì)師和工程團(tuán)隊(duì)光是在PC上就花費(fèi)太長(zhǎng)時(shí)間開(kāi)發(fā)嵌入式方案,然后,他們?cè)陧?xiàng)目周期中又太晚部署到目標(biāo)硬件上。由于目標(biāo)硬件通常是新的,而且在項(xiàng)目的早期階段團(tuán)隊(duì)也還用不到,因此該問(wèn)題通常會(huì)進(jìn)一步惡化。

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

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

錯(cuò)誤#3:將完全渲染的設(shè)計(jì)壓縮到嵌入式設(shè)備中

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

圖2 設(shè)計(jì)師提供完全渲染的影像,導(dǎo)致對(duì)于開(kāi)發(fā)人員來(lái)說(shuō)是過(guò)于復(fù)雜的元素。

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

錯(cuò)誤#4:使用一種編碼語(yǔ)言,以一蓋全

客戶(hù)經(jīng)常用HTML5、Javascript和/或QML編寫(xiě)過(guò)多的應(yīng)用邏輯。上述都是聲明性的腳本技術(shù),它們將使用與原生(native)C++不同的CPU資源,這通常會(huì)導(dǎo)致性能和維護(hù)問(wèn)題。

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

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

錯(cuò)誤#5:將更新和安全性視為特性

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

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

錯(cuò)誤#6:忽略?xún)?yōu)化操作系統(tǒng)中的“工作空間”

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

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

許多嵌入式項(xiàng)目都使用Yocto配方創(chuàng)建的Yocto影像。可惜的是,由于檔案層級(jí)各不相同,這些配方也很難用(圖3)。目前在市場(chǎng)上有許多供貨商,因此還需要密切地了解硬件驅(qū)動(dòng)器、核心和系統(tǒng)其他部份的工作原理,這部份花在專(zhuān)業(yè)咨詢(xún)服務(wù)上的投資通常會(huì)在上市時(shí)間和性能提升方面得到投資報(bào)酬。

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

熱門(mén)課程推薦

熱門(mén)資訊

請(qǐng)綁定手機(jī)號(hào)

x

同學(xué)您好!

您已成功報(bào)名0元試學(xué)活動(dòng),老師會(huì)在第一時(shí)間與您取得聯(lián)系,請(qǐng)保持電話(huà)暢通!
確定