作品简介

《Qt on Android 核心编程》以“从零开始也能学会Qt on Android开发”为目标,基于最新的Qt SDK 5.2,从Qt基本机制讲起,帮助读者建立Qt开发的概念;介绍信号与槽、各种GUI控件、布局管理器等各种Qt基础主题,同时辅以简洁有效有针对性的实例程序;有了使用Qt开发的基础后,作者进一步将重点转移到安卓平台,详细介绍Qt on Android的开发环境搭建、APK部署、APK调试等基础性的主题,然后深入讲解Qt on Android是如何在Java的世界中发生的,最后着重讲述Qt on Android的各种针对移动开发的技术主题,控件、布局、文件处理、XML、网络、多线程、按键、触摸、感应器、多媒体,为读者顺利在Android(安卓)平台开发提供深入浅出的指南。

安晓辉,1998年保送入西安交大教改班,2002年毕业进入西安大唐电信从事售后技术支持工作,2005年3月离职,始习编程之术。在此期间,有个人文集收录于各大文学站点与论坛,部分散文、小说、书评见诸杂志与报纸。BBS原创文集《指尖的飞翔》(兵马俑BBS原创文学精选)作者之一。网络文学选集《竹林听海》作者之一。

2005年4月有幸加盟西安信利软件科技有限公司,参野狐禅,走开发路。

2008年见Qt而倾心,用之于GUI、网络服务器、嵌入式开发,带领团队成功开发出基于Qt的互联网电视机顶盒。2012年移植Qt Embedded 4.5.2 到 Android平台并应用于智能机顶盒项目。

作品目录

  • 前言
  • 第1章 Qt概览
  • 1.1 什么是Qt
  • 1.2 我们能用Qt做什么
  • 1.3 谁在使用Qt
  • 1.4 什么是Qt on Android
  • 1.5 Qt on Android的前世今生
  • 第2章 Qt开发环境快速上手
  • 2.1 Qt Creator简介
  • 2.2 Qt Creator下载与安装
  • 2.2.1 下载
  • 2.2.2 安装
  • 2.3 创建第一个项目:Hello World
  • 2.4 Qt Creator集成开发环境介绍
  • 2.4.1 欢迎界面
  • 2.4.2 编辑界面
  • 2.4.3 调试界面
  • 2.4.4 项目选项设置
  • 2.4.5 菜单简介
  • 2.4.6 Qt Creator的选项配置
  • 2.4.7 项目模板介绍
  • 2.5 Qt开发工具介绍
  • 2.5.1 Assistant
  • 2.5.2 Designer
  • 2.5.3 Linguist
  • 2.5.4 命令行环境
  • 第3章 Qt on Android快速上手
  • 3.1 开发环境搭建
  • 3.1.1 JDK安装
  • 3.1.2 环境变量设置
  • 3.1.3 Android SDK安装
  • 3.1.4 Android NDK安装
  • 3.1.5 Apache Ant安装
  • 3.1.6 Qt Creator的Android环境配置
  • 3.1.7 AVD创建
  • 3.1.8 连接你的手机
  • 3.2 Hello Qt on Android
  • 3.2.1 创建项目
  • 3.2.2 项目选项
  • 3.2.3 创建密钥文件和证书
  • 3.2.4 创建AndroidManifest.xml
  • 3.2.5 添加代码
  • 3.2.6 运行程序
  • 3.3 Qt库的部署策略
  • 3.3.1 Use Ministro service to install Qt
  • 3.3.2 Bundle Qt libs in APK
  • 3.3.3 Deploy local Qt libraries to temporary directory
  • 3.4 日志
  • 3.4.1 为什么要有日志
  • 3.4.2 在Qt中如何使用日志
  • 3.4.3 如何把日志输出到Android日志系统中
  • 第4章 Qt项目文件介绍
  • 4.1 pro文件介绍
  • 4.1.1 注释
  • 4.1.2 组件选择
  • 4.1.3 目标文件名
  • 4.1.4 模板
  • 4.1.5 指定源文件
  • 4.1.6 指定头文件
  • 4.1.7 设置头文件路径
  • 4.1.8 指定库与库文件路径
  • 4.1.9 定义宏
  • 4.1.10 配置信息
  • 4.1.11 代码块与条件测试
  • 4.1.12 变量
  • 4.2 pro.user文件
  • 4.3 pri文件
  • 4.4 Makefile
  • 第5章 Qt入门
  • 5.1 Hello World再分析
  • 5.2 QuitApp:带交互的小程序
  • 5.3 初识信号与槽
  • 5.4 构建复杂界面
  • 5.4.1 盖洛普Q12测评程序
  • 5.4.2 创建自己的槽
  • 5.4.3 布局管理器介绍
  • 5.4.4 控件回顾
  • 5.5 追随Qt的代码风格
  • 第6章 元对象系统
  • 6.1 牡丹花示例
  • 6.2 再论编译过程
  • 6.3 Q_OBJECT宏
  • 6.4 QMetaObject
  • 6.5 关键字signals、slots、emit、SIGNALS、SLOTS
  • 6.5.1 signals
  • 6.5.2 emit
  • 6.5.3 slots
  • 6.5.4 SIGNALS
  • 6.5.5 SLOTS
  • 6.6 moc的魔法
  • 6.6.1 moc_peony.cpp的源码
  • 6.6.2 moc的工作清单
  • 6.6.3 信号的真容
  • 6.6.4 信号与槽的约会
  • 6.7 深入理解信号与槽
  • 6.7.1 信号与槽原理
  • 6.7.2 如何使用信号与槽
  • 6.7.3 信号与槽的连接类型
  • 6.7.4 信号与槽经验谈
  • 6.7.5 跨线程使用信号与槽
  • 6.8 属性系统
  • 6.8.1 静态属性
  • 6.8.2 动态(运行时)属性
  • 6.9 事件和事件过滤器
  • 6.9.1 重写event()
  • 6.9.2 重写特定事件处理器
  • 6.9.3 事件过滤器
  • 6.9.4 自定义事件
  • 6.10 定时器事件
  • 6.10.1 使用QTimer
  • 6.10.2 使用QObject::startTimer
  • 6.11 对象树与生命周期
  • 6.12 智能指针
  • 6.12.1 QPointer
  • 6.12.2 QSharedPointer
  • 6.12.3 QWeakPointer
  • 6.12.4 QScopedPointer
  • 6.12.5 QObjectCleanupHandler
  • 6.13 动态类型转换
  • 6.14 国际化
  • 6.14.1 字符串国际化方法
  • 6.14.2 创建译本
  • 6.14.3 装载译文文件
  • 6.14.4 运行时改变语言
  • 第7章 Qt模板库介绍
  • 7.1 使用QString
  • 7.1.1 初始化一个字符串
  • 7.1.2 操作字符串数据
  • 7.1.3 字符串查询
  • 7.1.4 编码转换
  • 7.1.5 格式化输出
  • 7.2 容器类
  • 7.2.1 QList示例
  • 7.2.2 QMap示例
  • 第8章 Qt GUI编程
  • 8.1 智能手机GUI特点
  • 8.2 内建窗口控件介绍
  • 8.2.1 QRadioButton
  • 8.2.2 QCheckBox
  • 8.2.3 QGroupBox
  • 8.2.4 QLineEdit
  • 8.2.5 QTextEdit
  • 8.2.6 QTabWidget
  • 8.2.7 QListWidget
  • 8.2.8 Qt资源文件系统
  • 8.2.9 QTableWidget
  • 8.3 自定义窗口部件
  • 8.3.1 使用QPainter绘图
  • 8.3.2 为Android实现的ImageButton
  • 8.3.3 文字渐变标签
  • 第9章 多线程
  • 9.1 上路吧,线程
  • 9.2 线程自己的事件循环
  • 9.3 岂能老死不相往来——线程间通信
  • 9.3.1 跨线程的信号与槽
  • 9.3.2 跨线程的事件
  • 9.3.3 门铃示例程序
  • 9.4 线程同步
  • 9.5 使用QThread的注意事项
  • 9.6 QThreadPool
  • 9.7 高阶多线程API:QtConcurrent
  • 第10章 网络编程
  • 10.1 QNetworkAccessManager
  • 10.1.1 http编程
  • 10.1.2 ftp编程
  • 10.2 QTcpSocket/QTcpServer
  • 10.2.1 服务器
  • 10.2.2 客户端
  • 10.3 QUdpSocket
  • 10.3.1 服务器
  • 10.3.2 客户端
  • 第11章 文件IO
  • 11.1 QFile
  • 11.2 QTextStream
  • 11.3 QDataStream
  • 第12章 XML
  • 12.1 XML读取与解析
  • 12.1.1 DOM
  • 12.1.2 SAX
  • 12.1.3 StAX
  • 12.2 XML文档生成与保存
  • 12.2.1 QXmlStreamWriter
  • 12.2.2 QDomNode::save()
  • 12.2.3 疯狂原始人的方式
  • 第13章 Qt on Android揭秘
  • 13.1 APK是怎样炼成的
  • 13.1.1 当你“运行”时……
  • 13.1.2 Android项目目录结构
  • 13.1.3 string.xml介绍
  • 13.1.4 AndroidManifest.xml介绍
  • 13.1.5 libs.xml介绍
  • 13.1.6 Androiddeployqt.exe都干了什么
  • 13.2 Java与Qt的结合过程
  • 13.2.1 应用入口
  • 13.2.2 通信代理
  • 13.2.3 QPA插件
  • 13.3 Qt应用的状态
  • 第14章 Android移动开发主题
  • 14.1 按键处理
  • 14.1.1 重写keyPressEvent/keyReleaseEvent
  • 14.1.2 给子控件安装事件过滤器
  • 14.1.3 应用级别的事件过滤器
  • 14.2 触摸与手势
  • 14.2.1 触摸
  • 14.2.2 手势
  • 14.3 传感器与手势
  • 14.3.1 常见传感器介绍
  • 14.3.2 Qt传感器手势类库介绍
  • 14.3.3 摇动手势
  • 14.3.4 覆盖手势
  • 14.3.5 自由落体
  • 14.3.6 缠绕手势
  • 14.3.7 翻转手势
  • 14.3.8 扇动手势
  • 14.3.9 传感器手势的使用
  • 14.4 拍照
  • 14.4.1 QCamera和它的小伙伴
  • 14.4.2 QCameraViewFinder
  • 14.4.3 QCameraImageCapture
  • 14.4.4 使用相机拍照
  • 14.4.5 在QML应用中使用相机
  • 14.5 录音与回放
  • 14.5.1 录音类库
  • 14.5.2 播放类库
  • 14.5.3 录音与回放小示例
  • 第15章 使用JNI扩展你的应用
  • 15.1 使用JNI Environment
  • 15.2 调用Java代码
  • 15.2.1 Java方法签名
  • 15.2.2 调用Java方法
  • 15.2.3 extendsQtWithJava实例
  • 15.2.4 QtAndroid名字空间
  • 15.2.5 使用手机外部存储
  • 15.3 Java调用C++
  • 第16章 纸上得来终觉浅,绝知此事要躬行
  • 16.1 笔记qnotepad
  • 16.1.1 首页设计与实现
  • 16.1.2 笔记对象
  • 16.1.3 笔记浏览与编辑
  • 16.2 图片浏览器
  • 16.2.1 文件选择控件
  • 16.2.2 图片加载器
  • 16.2.3 图片显示
  • 16.3 IP地址查询
  • 16.3.1 Json数据格式简介
  • 16.3.2 Qt中的Json类库
  • 16.3.3 程序详解
  • 16.4 音乐播放器
  • 16.4.1 云想衣裳花想容——Qt样式表
  • 16.4.2 多媒体类库介绍
  • 16.4.3 音乐播放器详解
  • 16.5 天气预报
  • 16.5.1 云中谁寄锦书来——GPS定位
  • 16.5.2 天气查询与显示
  • 16.6 拍照与后期处理
  • 16.6.1 方寸天地纳缱绻,楚楚蕴秀薄纸间
  • 16.6.2 图像处理算法
  • 16.6.3 图片加载与显示
  • 16.6.4 组织部长
  • 附录A 常见问题
  • 参考文献
展开全部