統(tǒng)信UOS是一款界面美觀、安全穩(wěn)定的操作系統(tǒng),可為用戶提供豐富的應用生態(tài)。統(tǒng)信軟件技術有限公司組織編寫了兩本統(tǒng)信UOS應用開發(fā)教程,分別面向初級和中級開發(fā)者。本書基于Qt 5.11.3,講解統(tǒng)信UOS應用開發(fā)的進階知識,涵蓋了應用開發(fā)中級工程師必須掌握的大部分核心知識點,如多線程、通信機制、進程間通信、數(shù)據庫操作、Qt的高級應用、調試與調優(yōu)、桌面文件等。此外,根據統(tǒng)信UOS的特點,本書還介紹了統(tǒng)信開發(fā)套件DTK,以及從Windows向Linux遷移應用的方法。本書實戰(zhàn)導向性強,精心設計了十余個項目案例,并在每章開頭點明目標任務和通過項目可掌握的知識點,便于讀者快速投入實戰(zhàn)。
1. 統(tǒng)信UOS應用開發(fā)官方教程,融入DTK開發(fā)框架列知識,在內容上更具有深度;
2. 保留學練結合的教學特點, 開發(fā)案例更加豐富,適合技術上有一定積累的開發(fā)者者使用。
3. 提供源碼文件,均來自統(tǒng)信UOS真實項目案例,讀者可邊學邊練、快速上手。
統(tǒng)信軟件技術有限公司(簡稱“統(tǒng)信軟件”)是以“打造中國操作系統(tǒng)創(chuàng)新生態(tài)”為使命的中國基礎軟件公司,由操作系統(tǒng)廠家于2019年聯(lián)合成立。公司專注于操作系統(tǒng)等基礎軟件的研發(fā)與服務,致力于為不同行業(yè)的用戶提供安全穩(wěn)定、智能易用的操作系統(tǒng)產品與解決方案。統(tǒng)信軟件總部設立在北京,同時在武漢、上海、廣州、南京等地設立了地方技術支持機構、研發(fā)中心和通用軟硬件適配中心。作為操作系統(tǒng)研發(fā)團隊,統(tǒng)信軟件擁有操作系統(tǒng)研發(fā)、行業(yè)定制、國際化、遷移和適配、交互設計、咨詢服務等多方面專業(yè)人才,能夠滿足不同用戶和應用場景對操作系統(tǒng)產品的廣泛需求。
第 1章 多線程和多線程同步
1.1 多線程的狀態(tài)和線程調度 002
1.2 多線程的創(chuàng)建和管理 003
1.3 線程同步 005
1.3.1 互斥量 005
1.3.2 死鎖以及解決方案 008
1.3.3 讀寫鎖 008
1.3.4 條件變量 009
1.4 項目案例 1:通過條件變量實現(xiàn)生產者消費者模型 009
1.5 項目案例 2:通過信號量實現(xiàn)生產者消費者模型 011
1.6 項目案例 3:文件管理器多文件復制任務同步 012
1.6.1 線程的使用 013
1.6.2 線程池的使用 015
1.6.3 線程同步 016
第 2 章 套接字和網絡編程
2.1 常見網絡協(xié)議 019
2.2 網絡編程接口 020
2.3 IP 地址轉換 020
2.3.1 QHostInfo 類 020
2.3.2 QNetworkInterface 類 022
2.3.3 QHostAddress 類 022
2.3.4 QNetworkAddress 類 024
2.4 UDP 通信機制與模型 024
2.5 項目案例 1:統(tǒng)信 UOS 內網通——聊天室 025
2.6 TCP 通信機制、模型與編程 031
2.7 項目案例 2:統(tǒng)信 UOS 內網通——文件傳輸 031
第3 章D-Bus 進程間通信
3.1 D-Bus 簡介 038
3.2 QtDBus 常用類 039
3.3 D-Bus 調試工具 044
3.4 項目案例:統(tǒng)信 UOS 磁盤管理器 046
第4 章數(shù)據庫操作
4.1 Qt 操作 SQLite 數(shù)據庫 051
4.2 項目案例 1:統(tǒng)信 UOS 聯(lián)系人——SQLite存儲用戶信息 053
4.3 Qt 操作 MySQL 數(shù)據庫 059
4.4 項目案例 2:統(tǒng)信 UOS 聯(lián)系人——MySQL存儲用戶信息 060
第5 章 Qt 高級特性的使用
5.1 Qt 插件系統(tǒng) 063
5.2 項目案例 1:統(tǒng)信 UOS 畫板——支持插件的畫板程序 064
5.2.1 創(chuàng)建項目 064
5.2.2 定義接口 065
5.2.3 編寫主程序 066
5.2.4 編寫插件 068
5.2.5 加載插件 069
5.2.6 實際運行 071
5.3 Qt 單元測試 072
5.4 項目案例 2:為程序編寫測試程序 073
5.4.1 執(zhí)行單元測試 075
5.4.2 測試用例的生命周期 077
5.4.3 數(shù)據驅動測試 077
5.4.4 圖形化測試 080
5.5 polkit 鑒權系統(tǒng) 081
5.5.1 聲明動作 083
5.5.2 定義規(guī)則 084
5.6 項目案例 3:系統(tǒng)環(huán)境變量修改器 085
5.6.1 editor 項目 085
5.6.2 helper 項目 087
5.6.3 檢查調用者的權限 089
第6 章Qt 程序的調試與調優(yōu)
6.1 在 Qt Creator 中調試代碼 092
6.1.1 配置調試環(huán)境 092
6.1.2 使用 GDB 進行調試 092
6.2 Perf 的介紹與使用 096
6.2.1 Perf 簡介 096
6.2.2 CPU 性能分析與火焰圖 097
6.2.3 緩存性能分析 100
6.3 Gperftools 103
6.3.1 Thread-Caching Malloc 103
6.3.2 內存檢查 104
6.3.3 內存性能分析 107
6.3.4 處理器性能分析 109
6.4 使用 Valgrind 進行內存分析 113
第7 章DTK 的使用
7.1 DTK 簡介 118
7.2 安裝 DTK 開發(fā)包 118
7.3 第 一個 DTK 項目 118
7.4 關于對話框的修改 120
7.5 程序單實例 121
7.6 日志文件 122
7.7 主窗口 122
7.8 自定義標題欄 124
7.9 DTK 中的控件 124
7.9.1 Controls 頁面 125
7.9.2 Effects 頁面 129
7.10 切換主題 130
7.11 添加設置界面 131
7.12 添加幫助手冊 136
第8 章桌面文件規(guī)范
8.1 桌面文件介紹 139
8.2 桌面文件基本模板 139
8.3 桌面文件規(guī)范 140
8.4 桌面文件完整示例 140
第9 章從 Windows 到 Linux 的程序遷移
9.1 系統(tǒng)現(xiàn)狀 143
9.2 程序遷移問題 143
9.3 DeepinWine 144
9.4 客戶端軟件運行的問題 144
9.5 Web 前端 145
9.6 ActiveX 控件 145
9.7 外圍設備 146