Qt(發(fā)音cute)最初是Trolltech公司于1994年做的一個(gè)平臺抽象層,在過(guò)去它廣泛地應用在桌面和嵌入式app中,例如Google Earth,Skype還有Roku機頂盒。Nokia為了在其Symbian,Maemo和Series 40等平臺上融合自身和第三方app創(chuàng )造一個(gè)一致的編程環(huán)境,在2008年收購了Qt。不過(guò)為了與微軟搭伙,諾基亞已經(jīng)放棄了Symbian和MeeGo,很有可能采用Qt來(lái)為其實(shí)現“Next Billion”戰略。在2008-2011年諾基亞放棄了Qt桌面和嵌入式平臺并把授權模塊賣(mài)給了Digia(一個(gè)芬蘭的系統集成商),這可真不值得。
Qt共有三種license可以獲得,包括兩種開(kāi)源的版本(LGPL v2.1和GPL v3)以及一個(gè)需要付費的商用license。Qt開(kāi)發(fā)框架被Nokia內部分割成兩部分,分別負責維護和開(kāi)發(fā)。從2011年11月起,Nokia削弱了在Qt上面的控制等級,并且允許第三方以一種更平等的方式來(lái)參與地圖以及特色應用的開(kāi)發(fā)。
主要產(chǎn)品和技術(shù)
Qt是個(gè)C++ UI以及應用框架作為其核心內容,擁有十分寬廣的平臺支持面(包括iOS,Android,Symbian,Tizen,MeeGo,Windows Mobile,Mac OS,Windows ,Linux以及一些其他的嵌入式環(huán)境)。除了C++語(yǔ)言之外,還可以使用QML(Qt Meta Language,這是一種陳述性語(yǔ)言,使用了一些Javascript元素使得UI和邏輯的編程更加簡(jiǎn)單。此外QML還可以使用Qt C++擴展,或者綁定C#,.Net,Java,Lua,Perl Python和PHP)。請注意Qt程序庫增加了大約額外的12MB到app負載,WebKit的額外負載是它的兩倍,這些將在下一個(gè)版本被改善,Qt5引入了模塊化,可以將沒(méi)用的組件從框架中剔除。
開(kāi)發(fā)人員也可以通過(guò)WebKit引擎使用HTML,JavaScript和CSS來(lái)實(shí)現用戶(hù)接口,混合編程語(yǔ)言以及使用WebViews會(huì )造成一些額外的性能開(kāi)銷(xiāo),否則的話(huà)其性能開(kāi)一說(shuō)能與native app相媲美,使用C++編譯(擁有抽象層接口讓 core app與操作系統交互)應該比Java更快一些。Qt開(kāi)發(fā)人員更傾向于把性能作為他們的選擇標準:32%選擇了這一點(diǎn),而對于其他工具的均值來(lái)說(shuō)只有20%;此外,對于性能方面的用戶(hù)滿(mǎn)意率也比較高。
Qt SDK由一些代碼庫組成,Qt Designer和Quick Designer擁有很多可視化編輯器,開(kāi)發(fā)工具等,諸如Qt quick UI Creation Kit,Mobile APIs,Symbian仿真器還有Meego Devices。另外,還有很多Visual Studio和Eclipse IDE的插件。
市場(chǎng)影響力
Nokia估計大約有五十萬(wàn)研發(fā)人員使用Qt,此外從該平臺發(fā)布以來(lái)大約超過(guò)兩萬(wàn)種應用是用Qt做出來(lái)的,其中一半是桌面平臺應用。Qt作為一種廣泛使用的編程平臺,應用在移動(dòng)(Symbian和Android),桌面和嵌入式設備,無(wú)線(xiàn)流量控制,汽車(chē)終端,機頂盒和打印機等諸多領(lǐng)域。放眼未來(lái),對于Nokia Series 40的轉型來(lái)說(shuō)Qt還處在一個(gè)不確定的狀態(tài),其未來(lái)的潛力依舊撲朔迷離。
市場(chǎng)定位
Qt可能是在A(yíng)pple和Google時(shí)代來(lái)臨之后唯一幸存的應用框架競爭者了,與此同時(shí)我們可以看到JavaMe和Flash都在持續走下坡路。在移動(dòng)開(kāi)發(fā)方面的調研結果上Qt的用戶(hù)體驗比其他工具略高一點(diǎn)點(diǎn):30%的Qt開(kāi)發(fā)人員擁有超過(guò)五年的開(kāi)發(fā)經(jīng)驗,而行業(yè)均值為17%;而在這群開(kāi)發(fā)老手里面,擁有網(wǎng)站開(kāi)發(fā)經(jīng)驗的卻比較少,只占42%的開(kāi)發(fā)人員擁有超過(guò)五年的開(kāi)發(fā)經(jīng)驗,而均值為66%。Qt的開(kāi)發(fā)人員可以把C++編程與HTML/Javascript以及QML整合在一起,并不需要考慮其他快速開(kāi)發(fā)工具。
除了桌面和嵌入式系統之外,Qt現在也被使用于針對Android和iOS的跨平臺應用開(kāi)發(fā)了,盡管他們都已經(jīng)在“Tier 3”并且沒(méi)有主流支持。通過(guò)Lighthouse項目可以獲得Android的支持,同時(shí)iOS社區推動(dòng)項目也在支撐Qt Core前進(jìn)(但不是GUI)。作者的調研結果表明,48%的人把Qt作為主要工具并且把Android作為一個(gè)關(guān)鍵平臺目標;iOS占18%。Qt開(kāi)發(fā)人員的目標平臺為:MeeGo/Tizen(80%),Symbian(73%),Windows PC(55%),Mac(36%)這方面比其他工具的均值要明顯高很多。
Qt開(kāi)發(fā)人員的主要目標app類(lèi)型更加混雜,公共事業(yè)應用占了38%(均值只有18%),企業(yè)應用展29%(均值39%),提高效率的工具應用25%(與均值持平)。


聯(lián)系客服