书刊介绍
《Qt on Android核心编程》内容简介
《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
常见问题
参考文献