<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          多屏世界的框架

          作者: 時間:2014-12-23 來源:電子產(chǎn)品世界 收藏

            跨平臺應(yīng)用框架

          本文引用地址:http://www.ex-cimer.com/article/267201.htm

            使用跨平臺應(yīng)用框架確保了業(yè)務(wù)邏輯和核心功能在所有平臺都可直接重復(fù)利用。例如,每個操作系統(tǒng)會以其自己的方式暴露聯(lián)網(wǎng)服務(wù),但 Qt 這樣的框架通過通用代碼接口來隱藏這些差異。對于聯(lián)網(wǎng)和連接,Qt Socket 類或 Qt 藍(lán)牙模塊為支持的目標(biāo)平臺提供相同的 API,對程序員隱藏了平臺的實現(xiàn)細(xì)節(jié)。Qt 有多種類型的模塊:數(shù)據(jù)庫訪問,多媒體功能,以及通用連接設(shè)備功能,如相機和基于 GPS 的定位服務(wù)。

            通過 Qt,開發(fā)人員可以擁有幾種方式創(chuàng)建響應(yīng)式的用戶界面,并使其可以輕松地連接到應(yīng)用程序的核心業(yè)務(wù)邏輯。一個是采用面向widget的技術(shù),這項技術(shù)最初是為桌面環(huán)境構(gòu)想的。

            傳統(tǒng)上,連接用戶界面控件和業(yè)務(wù)邏輯的技術(shù)采用回調(diào),就是 C 或 C++ 函數(shù)的指針。當(dāng)用戶界面事件發(fā)生時,回調(diào)使用指針來通知函數(shù)相應(yīng)的變化。這種方法會出現(xiàn)兩個問題。首先,程序員必須確保用正確的方法進(jìn)行回調(diào),這使維護(hù)工作復(fù)雜化,并且在用戶界面改變時,還可能導(dǎo)致引入錯誤。其次,該技術(shù)要求界面和業(yè)務(wù)邏輯代碼緊密連接,因為每次回調(diào)都需要確切地知道要訪問哪個函數(shù)。

            Qt 避免了傳統(tǒng)回調(diào)的問題,方法是采用一種稱為信號與槽的靈活機制來管理代碼對象之間的連接。事件產(chǎn)生信號,而注冊并監(jiān)聽信號的函數(shù)能接收到這種特定的信號。這種連接是靈活的,因為它不要求兩個部分彼此相互了解。因此,一個信號可以連接到多個槽,使得系統(tǒng)比回調(diào)更靈活。此外,系統(tǒng)是類型安全的,確保了函數(shù)不會收到損壞的數(shù)據(jù)。由于Qt是構(gòu)建在 C++ 之上的, 而C++ 默認(rèn)并不提供這種機制,這是通過特殊的 Qt 元對象來實現(xiàn)的(在編譯時為 Qt 創(chuàng)建對象,以攜帶使用中的對象的動態(tài)元信息)。

            通過 Qt Quick 和 Web 技術(shù)進(jìn)行多屏設(shè)計的靈活性

            Qt Widgets 提供更為傳統(tǒng)的基于 C++ 面向?qū)ο蟮姆椒▉韯?chuàng)建用戶界面,但不具備獨立于平臺的多屏應(yīng)用所需的響應(yīng)式用戶界面設(shè)計的所有靈活性。作為 Qt 的另一種方法,Qt Quick 利用聲明式編程風(fēng)格,可以很快地開發(fā)出用戶界面。

            Qt Quick 將命令式編程邏輯與聲明表示層分開,利用和 Qt 的 C++ API 相同的信號與插槽機制,使這兩個保持靈活的連接。Qt Quick 采用為 web 創(chuàng)造的概念和技術(shù),但具有全部本地執(zhí)行的優(yōu)勢。一個關(guān)鍵的組成部分就是聲明方式設(shè)計語言 QML。

            QML 基于 JavaScript,目的是支持流暢的觸摸式用戶界面的設(shè)計和創(chuàng)建。其基于事件和屬性的聲明方法將布局和界面行為與核心概念邏輯完全分開。在一個設(shè)備上用手勢可以啟動的操作在另一設(shè)備上可以用滑塊對象來完成。通過給對象綁定不同的屬性,開發(fā)人員可以快速嘗試不同的界面配置,以適應(yīng)每個目標(biāo)設(shè)備的獨特顯示環(huán)境。核心 C++ 業(yè)務(wù)邏輯保持相同,允許直接訪問設(shè)備和外設(shè)并優(yōu)化性能。針對不同客戶端 UX 的變化用 QML 創(chuàng)建用戶界面。

            由于其基于 JavaScript 的結(jié)構(gòu),QML 允許開發(fā)人員導(dǎo)入第三方的類庫(可用于執(zhí)行輸入驗證),提供額外的用戶界面服務(wù),如語音識別,或與 web 服務(wù)連接以集成RESTful的 API。有意義的情況是QML 也強大到足以處理業(yè)務(wù)邏輯。

            以其核心的形式,QML 提供簡單的圖形對象,通過它可以為每個平臺構(gòu)建用戶界面控件。對于常用控件,Qt Quick Controls and Layouts 類庫給開發(fā)人員提供了現(xiàn)成的對象,以適應(yīng)通用平臺的本機外觀,也可以輕松改變他們來定制獨特的外觀。

            為另一種設(shè)備更新用戶界面和交換一個 QML 布局文件一樣簡單,甚至改變同一個布局文件中的變量即可。例如,可以設(shè)置這些變量以確定在視圖中顯示多少元素,以及是否應(yīng)該使用大小版本不同的圖標(biāo)和其它的對象。所有數(shù)值和比例都可與屏幕尺寸綁定。

            因為可以動態(tài)地,甚至在線加載 QML,所以可以在改進(jìn)完成時遠(yuǎn)程更新用戶界面,而不需要重新部署應(yīng)用。由于 Qt 還支持直接集成 HTML5,開發(fā)人員可以構(gòu)建混合界面,對動態(tài)內(nèi)容采用 web 技術(shù),擴展設(shè)備的功能,使設(shè)備可以在互聯(lián)網(wǎng)上提供服務(wù)。

            Qt 不僅針對各種屏幕,它本身也可用作平臺。許多客戶已經(jīng)部署了用 Qt 構(gòu)建的軟件開發(fā)工具包 (SDKs),使他們的設(shè)備對第三方程序員開放。這種方法能夠圍繞嵌入式設(shè)備建立整個軟件生態(tài)系統(tǒng),利用社區(qū)的技能來提供增值服務(wù)。

            結(jié)論

            憑借廣泛的平臺支持以及可以支持新增設(shè)備類型的架構(gòu),Qt 技術(shù)為開發(fā)人員提供工具以充分利用多屏市場帶來的商機。通過把聲明式用戶界面設(shè)計與必要的業(yè)務(wù)邏輯相結(jié)合,的開發(fā)人員能夠減少每個新平臺需要執(zhí)行的重復(fù)工作,同時為每個設(shè)備都帶來新穎的用戶界面功能。

          物聯(lián)網(wǎng)相關(guān)文章:物聯(lián)網(wǎng)是什么


          萬能遙控器相關(guān)文章:萬能遙控器代碼



          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();