統信UOS應用開發詳解

統信軟件技術有限公司

  • 出版商: 人民郵電
  • 出版日期: 2023-01-01
  • 定價: $888
  • 售價: 7.5$666
  • 語言: 簡體中文
  • 頁數: 587
  • ISBN: 7115597340
  • ISBN-13: 9787115597342
  • 相關分類: QtOperating-system
  • 立即出貨 (庫存 < 3)

  • 統信UOS應用開發詳解-preview-1
  • 統信UOS應用開發詳解-preview-2
統信UOS應用開發詳解-preview-1

商品描述

本書是統信 UOS 應用開發指南,包括 5 篇,共 16 章。背景知識篇介紹操作系統簡史以及國產操作系統;應用開發篇是本書的核心,包括開發設計原則、開發環境與開發工具、Qt 開發框架、DTK 開發框架、DTK 插件開發、服務開發、調試與性能優化;發布與部署篇介紹包格式、上架部署;桌面應用開發實戰篇介紹 6 個難度從初級、中級到高級的經典應用案例,以及系統接口案例;常見問題篇介紹內核與驅動、開發工具相關、常用資源,幫助讀者進一步提升開發水平。

本書內容全,理論與實踐相結合,語言表達清晰、簡潔,有利於讀者參考學習。

本書適合統信 UOS 的開發人員閱讀,有助於其系統掌握開發內容;也適合有志於參與統信生態構建的信創廠商、應用開發人員閱讀參考。

作者簡介

统信软件以“打造操作系统创新生态”为使命,由国内领先的操作系统厂家于2019年联合成立。公司专注于操作系统等基础软件的研发与服务,致力于为不同行业的用户提供稳定、智能易用的操作系统产品与解决方案。

目錄大綱

第 1 篇 背景知識

第01章 操作系統簡史

1.1 人工時代 003

1.2 批處理操作系統 003

1.2.1 聯機批處理操作系統 003

1.2.2 離線批處理操作系統 003

1.3 分時操作系統 004

1.3.1 UNIX 操作系統的誕生 004

1.3.2 可視化操作系統的演進 005

1.3.3 開源 Linux 的誕生與演進 005

第02章 國產操作系統

2.1 國產操作系統的必要性 007

2.2 國產操作系統統信 UOS 007

2.2.1 DDE 009

2.2.2 統信 UOS 生態環境 010

第 2 篇 應用開發

第03章 開發設計原則

3.1 同源異構 013

3.1.1 內核適配 013

3.1.2 ABI 兼容性 013

3.1.3 接口兼容性 014

3.2 兼容性原則 014

3.3 目錄權限規範 014

3.4 界面設計理念 015

3.4.1 為用戶而設計 015

3.4.2 設計解決的不是視覺問題 015

3.4.3 保持輕量 015

第04章 開發環境與開發工具

4.1 統信 UOS 的安裝 018

4.1.1 物理機單系統安裝 018

4.1.2 物理機多系統安裝 022

4.1.3 VirtualBox 安裝 023

4.1.4 統信 UOS 的基本使用 026

4.1.5 安裝軟件 028

4.2 常見的開發環境配置 029

4.2.1 DTK 開發環境 029

4.2.2 開發第 一個程序:HelloWorld 031

4.3 目錄結構設計 037

4.3.1 項目目錄規範 037

4.3.2 README 文件 037

4.4 版本控制系統 039

4.4.1 Git 基礎知識 039

4.4.2 安裝 Git 040

4.4.3 配置 Git 041

4.5 Git Flow 開發模型 042

4.5.1 主分支 043

4.5.2 輔助分支 043

4.6 版本號管理 044

4.7 統信 UOS 的開發者模式 044

4.7.1 潛在風險說明 045

4.7.2 開啟方法 045

第05章 Qt 開發框架

5.1 Qt 基礎模塊 048

5.1.1 Qt Core 048

5.1.2 Qt GUI 065

5.1.3 Qt Widgets 068

5.1.4 Qt Test 081

5.2 Qt 擴展模塊 091

5.2.1 Qt Concurrent 091

5.2.2 Qt BlueTooth 094

5.2.3 Qt D-Bus 097

5.2.4 Qt Image Formats 098

5.3 Qt WebEngine 概述 098

5.3.1 開發 Qt WebEngine Widgets 應用 099

5.3.2 開發與 Qt WebEngine 相關的

Qt Quick 應用 100

5.3.3 命令行參數 100

5.3.4 Qt WebEngine 其他說明 101

5.4 Electron 概述 102

5.4.1 Electron 開發環境 102

5.4.2 第 一個 Electron 程序 103

5.4.3 打包並分發第 一個應用 106

5.4.4 調試方法 106

5.5 常見問題 107

5.5.1 qmake 工程設置模塊之間的編譯依賴關系 107

5.5.2 CMake 工程設置模塊之間的編譯依賴關系 107

5.5.3 快速使用 QTimer 進行一次計時操作 108

5.5.4 Qt 單元測試發送事件到控件中 108

5.5.5 使用事件過濾器 111

5.5.6 信號和槽的連接參數 112

5.5.7 Qt 多線程常見使用方法 113

5.5.8 QWidget 坐標系的位置變換 114

5.5.9 Qt 版本區分 116

5.5.10 限制 QLineEdit 內容輸入 117

5.5.11 Qt 通過信號與槽傳遞自定義結構體數據 118

5.5.12 Qt 界面控件自動關聯信號與槽 119

5.5.13 QString 格式化字符串的使用 119

5.5.14 QDateTime 日期時間類的使用 120

第06章 DTK 開發框架

6.1 DTK 開發簡述 123

6.2 DTK 功能模塊介紹 123

6.3 DTK 程序框架創建 124

6.3.1 軟件環境配置和開發包安裝 124

6.3.2 創建 qmake 項目 125

6.3.3 創建 CMake 項目 127

6.4 DTK 圖形控件使用 128

6.4.1 dtkwidget 的 public 類簡介 128

6.4.2 DMainWindow 簡介 130

6.5 DTK 常用組件 137

6.5.1 佈局 137

6.5.2 進度、狀態指示 143

6.5.3 輸入框和編輯框 146

6.5.4 按鈕與選項 150

6.5.5 消息通知與提示 155

6.6 DTK 中的設置界面框架 159

6.6.1 簡介 160

6.6.2 示例 160

6.6.3 詳解 161

第07章 DTK 高級開發

7.1 插件的工作原理 167

7.2 dde-dock 插件開發 167

7.2.1 dde-dock 插件接口 167

7.2.2 dde-dock 插件開發過程 169

7.3 dde-control-center 插件開發 184

7.3.1 dde-control-center 插件開發的準備工作 184

7.3.2 dde-control-center 插件接口 184

7.3.3 構建 dde-control-center 插件 185

7.3.4 插件加載原理 191

7.4 dfm 插件開發 192

7.4.1 準備工作 193

7.4.2 屬性對話框插件 193

7.4.3 視圖插件 197

7.4.4 麵包屑插件 204

7.4.5 文件控制器插件 212

7.4.6 文件預覽插件 219

7.5 PAM 插件 226

7.5.1 PAM 工作流程 226

7.5.2 PAM 配置文件介紹 227

7.5.3 PAM 主要操作函數 230

7.5.4 PAM 標準接口介紹 231

7.5.5 實現一個 PAM 插件 231

7.6 瀏覽器插件開發 233

7.6.1 NPAPI 插件 233

7.6.2 插件安裝 234

7.6.3 插件識別 234

7.6.4 插件的生命周期 235

7.6.5 NAAPI 的插件開發 236

第08章 服務開發

8.1 systemd 服務開發 242

8.1.1 systemd 系統架構 242

8.1.2 unit 介紹 242

8.1.3 unit 管理 243

8.1.4 unit 服務配置文件 244

8.1.5 實例 245

8.1.6 systemd 調試 248

8.2 PolicyKit 服務開發 249

8.2.1 PolicyKit 系統架構 249

8.2.2 身份驗證代理 250

8.2.3 聲明操作 250

8.2.4 polkitd 252

8.2.5 pkcheck 252

8.2.6 pkaction 253

第09章 調試與性能優化

9.1 GDB 入門 256

9.1.1 何為 GDB 256

9.1.2 GDB 工作原理 256

9.1.3 調用和退出 GDB 256

9.1.4 GDB 基本命令 260

9.1.5 GDB 調試腳本 277

9.1.6 GDB 多線程調試 278

9.1.7 GDB 多進程調試 282

9.2 Qt Creator 中的調試和調優 286

9.2.1 代碼調試 286

9.2.2 性能調優 291

9.3 使用 perf 進行性能分析 294

9.3.1 用法 294

9.3.2 事件類型 295

9.3.3 示例 296

9.4 使用 gperftools 進行性能分析 306

9.4.1 編譯安裝 gperftools 306

9.4.2 TCMalloc 307

9.4.3 heap checker 307

9.4.4 heap profile 310

9.4.5 CPU profiler 314

9.5 使用 gprof 進行性能分析 316

9.5.1 編譯 profiling 程序 317

9.5.2 運行 profiling 程序 317

9.5.3 運行 gprof 318

9.5.4 gprof 輸出樣式 318

9.6 使用 Valgrind 與 Sanitizers 進行內存分析 321

9.6.1 Valgrind 321

9.6.2 Sanitizers 326

第 3 篇 發布與部署

第 10章 包格式

10.1 Debian 軟件包 335

10.1.1 Debian 軟件包概述 335

10.1.2 統信 UOS 系統安裝 Debian 包 337

10.1.3 構建 deb 軟件包 343

10.1.4 章節小結 358

10.2 RPM 358

10.2.1 RPM 軟件管理命令 358

10.2.2 DNF 包管理器 361

10.2.3 構建 RPM 包 366

10.3 依賴分析與處理 371

10.3.1 軟件包的依賴概述 371

10.3.2 UOS 系統上軟件依賴分析方法及原理 371

10.3.3 UOS 系統使用過程中如何處理依賴 374

10.3.4 UOS 開發過程中常見的依賴問題 379

10.3.5 章節小結 380

第 11章 上架部署

11.1 應用規範 382

11.1.1 目錄結構 382

11.1.2 權限規範 382

11.2 簽名 382

11.2.1 簽名機制 383

11.2.2 統信 UOS 應用簽名 385

11.2.3 簽名工具的使用 388

11.3 上架 389

11.3.1 應用商店介紹 390

11.3.2 準備工作 391

11.3.3 創建應用 392

11.3.4 上架 393

11.4 內網分發 393

11.4.1 私有化應用商店 394

11.4.2 部署流程 394

11.4.3 其他 398

第 4 篇 桌面應用開發實戰

第 12章 經典應用案例

12.1 初級:簡易文本編輯器 403

12.1.1 簡述 403

12.1.2 應用主要功能 403

12.1.3 “關於”界面 404

12.1.4 主業務視圖 408

12.1.5 標題欄 409

12.1.6 文本顯示編輯框及行號欄 414

12.1.7 底部欄 422

12.2 初級:計算器 426

12.2.1 簡述 426

12.2.2 應用主要功能 426

12.2.3 應用入口 427

12.2.4 應用主窗口內容添加 428

12.3 中級:相冊 437

12.3.1 簡述 437

12.3.2 圖片加載 437

12.3.3 縮略圖展示 438

12.3.4 大圖展示 442

12.4 中級:郵箱客戶端 444

12.4.1 簡述 444

12.4.2 郵件引擎 444

12.4.3 數據結構 446

12.4.4 實例 447

12.5 高級:影院 448

12.5.1 簡述 448

12.5.2 播放引擎介紹 448

12.5.3 播放引擎接口函數 449

12.5.4 實例 450

12.6 高級:音樂播放器 453

12.6.1 簡述 453

12.6.2 音樂引擎介紹 453

12.6.3 音樂播放接口 453

12.6.4 實例 455

第 13章 系統接口案例

13.1 定時任務 460

13.1.1 cron 簡述 460

13.1.2 systemd 簡述 460

13.2 設備訪問 462

13.2.1 攝像頭 462

13.2.2 揚聲器和麥克風 486

13.2.3 網絡 504

13.2.4 藍牙 511

13.3 通知接口的使用 520

13.4 托盤圖標 525

13.4.1 QSystemTrayIcon 類 525

13.4.2 實例 527

第 5 篇 常見問題

第 14章 內核與驅動

14.1 內核編譯 533

14.1.1 編譯 x86/ARM 內核 533

14.1.2 交叉編譯龍芯內核 533

14.1.3 AMD GPU 顯卡驅動源碼編譯 534

14.2 GPIO 534

14.2.1 數據結構 534

14.2.2 驅動初始化流程 535

14.2.3 示例 535

14.3 input 子系統 536

14.3.1 輸入設備驅動 536

14.3.2 應用示例 538

14.4 hwmon 子系統 539

14.4.1 hwmon 驅動 539

14.4.2 應用示例 541

14.5 LTP 542

14.5.1 LTP 執行原理 542

14.5.2 LTP 環境部署 542

14.5.3 安裝目錄 543

14.5.4 測試執行 543

14.6 驅動問題 543

14.6.1 網卡速度異常問題 543

14.6.2 USB 觸摸板 S3 喚醒問題 544

14.6.3 HDMI 熱插拔連接狀態錯誤問題 546

第 15章 開發工具相關

15.1 其他開發工具 552

15.1.1 VS Code 552

15.1.2 JetBrains 系列 IDE 555

15.1.3 Eclipse 558

15.2 其他語言開發環境搭建 561

15.2.1 Node.js 561

15.2.2 Go 564

15.2.3 Rust 566

第 16章 常用資源

16.1 DTK 接口簡要說明 570

16.1.1 DMainWindow 自定義快捷菜單 570

16.1.2 DApplication 接口函數 572

16.1.3 DTK 漢字轉拼音 572

16.1.4 DListView DViewItemAction::setwidget 用法 572

16.1.5 打印預覽 574

16.1.6 DAccessibilityChecker 的用法 575

16.1.7 自定義按鈕背景色 576

16.1.8 幫助手冊 577

16.1.9 日誌文件 578

16.1.10 系統信息 579

16.1.11 系統通知 580

16.1.12 DRegionMonitor 580

16.2 Linux 開發常用資源 582

16.2.1 libc 手冊 582

16.2.2 man 手冊 582

16.2.3 編輯器 584

16.2.4 工具 585

16.2.5 代理 586

16.2.6 網絡安全 586

16.2.7 文件共享 587

16.2.8 終端 587

16.2.9 圖形界面 588

16.2.10 數據備份與恢復 588

16.2.11 控制台 589

16.2.12 包管理工具 589