新書推薦:
![中国书法嬗变与思考(国家社科基金后期资助项目)](http://103.6.6.66/upload/mall/productImages/24/31/9787101165432.jpg)
《
中国书法嬗变与思考(国家社科基金后期资助项目)
》
售價:HK$
112.7
![关键冲突:如何化人际关系危机为合作共赢(原书第2版)](http://103.6.6.66/upload/mall/productImages/24/31/9787111750918.jpg)
《
关键冲突:如何化人际关系危机为合作共赢(原书第2版)
》
售價:HK$
86.3
![探索清陵五十年](http://103.6.6.66/upload/mall/productImages/24/30/9787507769098.jpg)
《
探索清陵五十年
》
售價:HK$
1012.0
![定鼎中原之路:从皇太极入关到玄烨亲政](http://103.6.6.66/upload/mall/productImages/24/31/9787108062819.jpg)
《
定鼎中原之路:从皇太极入关到玄烨亲政
》
售價:HK$
101.2
![财之道丛书·如何让人投资你:股权激励融资全揭秘](http://103.6.6.66/upload/mall/productImages/24/31/9787213115257.jpg)
《
财之道丛书·如何让人投资你:股权激励融资全揭秘
》
售價:HK$
101.2
![PyTorch深度学习与计算机视觉实践](http://103.6.6.66/upload/mall/productImages/24/30/9787302665144.jpg)
《
PyTorch深度学习与计算机视觉实践
》
售價:HK$
90.9
![新任经理 100 天实战指南](http://103.6.6.66/upload/mall/productImages/24/29/9787566923387.jpg)
《
新任经理 100 天实战指南
》
售價:HK$
89.7
![日本百鬼画谱](http://103.6.6.66/upload/mall/productImages/24/31/9787201199009.jpg)
《
日本百鬼画谱
》
售價:HK$
71.3
|
編輯推薦: |
统信软件致力于打造操作系统创新生态。一本涵盖开发设计原则、开发环境配置、Qt开发框架、DTK开发框架、服务开发、发布与部署、开发案例等知识的开发指南正合时宜。本书适合有志于参与统信生态构建的信创厂商、应用开发人员阅读参考。● 从开发环境到发布与部署,应用开发全流程详解 ● 自研开发框架DTK使用介绍,提升开发效率 ● 6个桌面应用开发实战,学练结合
|
內容簡介: |
本书是统信 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 开发模型 0424.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 常用组件 1376.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 2569.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 应用签名 38511.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
|
|