1. 程式人生 > 其它 >統信DTK開發套件應用技術分享

統信DTK開發套件應用技術分享

近年來,信創產業發展迅猛,國產軟硬體適配的需求日益增加,但國內CPU架構種類繁多,導致大量的適配投入。同時,由於底層程式碼質量不同、程式碼實現風格不統一等問題,造成自研作業系統的應用開發門檻高,應用生態嚴重缺失。

面對這種情況,統信軟體專門推出一款幫助開發者快速實現跨平臺跨架構的開發套件:DTK(Development ToolKit)。DTK是統信基於Qt開發的一整套簡單且實用的通用開發框架,處於統信UOS系統中的核心位置,統信UOS瀏覽器、音樂、郵件等40餘款原生應用全部使用DTK開發。DTK從開發者的角度出發,融合現代化的開發理念,提供豐富的開發介面與支援工具,滿足日常圖形應用、業務應用、系統定製應用的開發需求,提升開發效率,讓開發者暢享跨平臺、跨架構的開發體驗。

統信軟體同心生態聯盟聯合統信軟體教育與考試中心將於2022年3月10日14:00-16:00,舉辦同心賦能·鑄就未來第六期—統信DTK開發套件應用技術培訓活動,採用線上騰訊會議(會議號:369-413-916)幫助更多的開發者從理論和實踐的角度,瞭解“統信DTK開發套件應用技術”,解決開發者長久以來在自主軟硬體平臺開發的煩惱。

2019年伴隨著deepin V20版本的開發,DTK也迎來了有史以來的最大改動,從此開始了DTK5.0時代。

 


DTK其實是多個專案的總稱,它按功能角色劃分了不同的模組,dtkcommon是所有模組的基礎,它主要提供qmake相關的pri/prf檔案,因為每個模組專案的目錄結構都有許多共同點,比如都分了src、tools、tests這些子目錄,並且都需求在編譯期自動生成一些檔案,還會定義一些檔案的安裝路徑,為了方便統一的管理這些行為,遂將這些通用的與qmake構建相關的實現都放到了dtkcommon中實現,以便在其它模組編譯時統一引用。

dtkcore包含了所有與圖形不相關的實現,它的定位與Qt5的QtCore類似,提供了獲取系統資訊、監聽檔案系統、日誌框架等功能。

dtkgui的定位是用來實現與圖形相關且與具體的UI控制元件無關的基礎功能,提供瞭如圖形環境的主題讀寫功能,可以獲取和設定滑鼠游標的閃動速度、當前環境的文字大小等配置。

在這之外還封裝了與視窗管理器互動的功能,比如獲取視窗管理器的名稱、為某個視窗設定開啟背景模糊的功能,這些功能在DDE桌面環境中被大量使用。此外還提供一些與圖形相關的工具類,此處不再詳細展開。

dtkwidget建立在dtkgui之上,它主要包含兩大部分內容,一是對Qt已有控制元件提供符合deepin設計的樣式,在這個實現中,沒有使用任何qss程式碼,而是對Qt更底層的部分進行覆蓋,這樣做的好處是:不影響使用DTK開發的程式使用qss來進行二次定義,對於一個開發庫來說,這有非常大的意義。

另一方面,因為Qt已有的控制元件已經設計了很多年,對於現代化的應用程式來說,它缺少新鮮血液的注入,缺乏新控制元件,無法滿足新型的現代化程式的開發,所以DTK還增加了一些新控制元件,比如“標籤編輯框”、“視窗內部的訊息通知”、“開關式切換按鈕”等。此外對所有的控制元件(Qt中已有的和DTK中新增的),都統一了字型和顏色管理系統,使用dtkwidget開發的應用,都可以自動跟隨圖形環境的“亮色”和“暗色”主題設定,可以統一的響應系統字型大小改變,不用重啟應用也可以實時看到效果。

qt5integration和qt5platform-plugins是為Qt編寫的外掛,為程式提供了對作業系統能力的封裝,比如呼叫系統提供的檔案選擇對話方塊、為視窗自定義標題欄、設定視窗的圓角大小等功能。

這兩個模組不會被應用程式直接使用,它們所提供的所有能力皆已經在dtkgui和dtkwidget中進行了封裝,所以很好的遮蔽掉了程式對底層系統的強制依賴,使得DTK開發的程式可以輕鬆的遷移到其它平臺。

DTK一鍵安裝開發工具包
為了方便開發者開發 DTK 應用,我們已經將所有做 DTK 應用開發的軟體包整合在了一個軟體包裡面,安裝該包即可自動安裝做 DTK 應用開發的環境,包括 libdtkwidget-dev, libdtkgui-dev, libdtkcore-dev,cmake,qtcreator,qtcreator-template-dtk,qt5-default,g++,git…等包。

安裝開發環境
在目前的最新版 deepin 商店,已經上架了 DTK 開發工具包,在商店搜尋 DTKIDE 即可看到

2022年3月10日14:00-16:00,將為您詳細介紹DTK開發套件應用技術,採用線上騰訊會議(會議號:369-413-916)幫助更多的開發者從理論和實踐的角度,瞭解“統信DTK開發套件應用技術”,解決開發者長久以來在自主軟硬體平臺開發的煩惱。
————————————————
版權宣告:本文為CSDN博主「蔚穎willing」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。
原文連結:https://blog.csdn.net/willingpoint/article/details/123376406