书籍详情
《QtonAndroid核心编程》[27M]百度网盘|亲测有效|pdf下载
  • QtonAndroid核心编程

  • 出版社:电子工业出版社
  • 出版时间:2015-01
  • 热度:9232
  • 上架时间:2024-06-30 09:08:33
  • 价格:0.0
书籍下载
书籍预览
免责声明

本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正

内容介绍

编辑推荐

  当Qt跨界牵手Android,移动开发会有什么不同?初学者如何借助Qt开发Android应用?跟随CSDN博文大赛冠军foruok进入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(安卓)平台开发提供深入浅出的指南。
  《Qt on Android 核心编程》首先是一本介绍Qt程序设计技术的书籍,其次是讲述如何在移动平台Android上使用Qt框架进行开发的书籍。对于Qt技术感兴趣的读者,无论是专注于传统的桌面软件开发,还是希望尝试使用Qt在Android平台开发,都可以从《Qt on Android 核心编程》中获得根本、重要的知识与实例。《Qt on Android 核心编程》既适合有一定C/C++语言基础、希望开发跨平台应用的开发人员,又适合希望开发安卓应用的C/C++开发人员,以及想了解Qt开发的人员。

作者简介

  安晓辉,1980年生于曹魏故里――许昌。1998年保送入西安交大教改班,2002年毕业进入西安大唐电信从事售后技术支持工作,2005年3月离职,始习编程之术。在此期间,有个人文集收录于各大文学站点与论坛,部分散文、小说、书评见诸杂志与报纸。国内一本BBS原创文集《指尖的飞翔》(兵马俑BBS原创文学精选)作者之一。网络文学选集《竹林听海》作者之一。 2005年4月有幸加盟西安信利软件科技有限公司,参野狐禅,走开发路。 2008年见 Qt 而倾心,用之于GUI、网络服务器、嵌入式开发,带领团队成功开发出基于 Qt 的互联网电视机顶盒。2012年移植 Qt Embedded 4.5.2 到 Android 平台并应用于智能机顶盒项目。2014年初开始研究学习 Qt on Android 。

目录

第1章 Qt概览 1

1.1 什么是Qt 1

1.2 我们能用Qt做什么 1

1.3 谁在使用Qt 1

1.4 什么是Qt on Android 2

1.5 Qt on Android的前世今生 2

第2章 Qt开发环境快速上手 6

2.1 Qt Creator简介 6

2.2 Qt Creator下载与安装 7

2.2.1 下载 7

2.2.2 安装 7

2.3 创建第一个项目:Hello World 9

2.4 Qt Creator集成开发环境介绍 13

2.4.1 欢迎界面 13

2.4.2 编辑界面 15

2.4.3 调试界面 17

2.4.4 项目选项设置 17

2.4.5 菜单简介 19

2.4.6 Qt Creator的选项配置 21

2.4.7 项目模板介绍 22

2.5 Qt开发工具介绍 24

2.5.1 Assistant 24

2.5.2 Designer 28

2.5.3 Linguist 29

2.5.4 命令行环境 30

第3章 Qt on Android快速上手 32

3.1 开发环境搭建 32

3.1.1 JDK安装 32

3.1.2 环境变量设置 34

3.1.3 Android SDK安装 36

3.1.4 Android NDK安装 41

3.1.5 Apache Ant安装 41

3.1.6 Qt Creator的Android环境配置 42

3.1.7 AVD创建 44

3.1.8 连接你的手机 46

3.2 Hello Qt on Android 47

3.2.1 创建项目 47

3.2.2 项目选项 50

3.2.3 创建密钥文件和证书 53

3.2.4 创建AndroidManifest.xml 55

3.2.5 添加代码 53

3.2.6 运行程序 55

3.3 Qt库的部署策略 57

3.3.1 Use Ministro service to install Qt 58

3.3.2 Bundle Qt libs in APK 59

3.3.3 Deploy local Qt libraries to temporary directory 60

3.4 日志 62

3.4.1 为什么要有日志 63

3.4.2 在Qt中如何使用日志 63

3.4.3 如何把日志输出到Android日志系统中 64

第4章 Qt项目文件介绍 67

4.1 pro文件介绍 67

4.1.1 注释 68

4.1.2 组件选择 68

4.1.3 目标文件名 68

4.1.4 模板 69

4.1.5 指定源文件 69

4.1.6 指定头文件 70

4.1.7 设置头文件路径 70

4.1.8 指定库与库文件路径 70

4.1.9 定义宏 70

4.1.10 配置信息 71

4.1.11 代码块与条件测试 72

4.1.12 变量 74

4.2 pro.user文件 75

4.3 pri文件 75

4.4 Makefile 75

第5章 Qt入门 76

5.1 Hello World再分析 76

5.2 QuitApp:带交互的小程序 77

5.3 初识信号与槽 79

5.4 构建复杂界面 80

5.4.1 盖洛普Q12测评程序 80

5.4.2 创建自己的槽 85

5.4.3 布局管理器介绍 85

5.4.4 控件回顾 88

5.5 追随Qt的代码风格 91

第6章 元对象系统 92

6.1 牡丹花示例 93

6.2 再论编译过程 95

6.3 Q_OBJECT宏 96

6.4 QMetaObject 97

6.5 关键字signals、slots、emit、SIGNAL、SLOT 97

6.5.1 signals 97

6.5.2 emit 98

6.5.3 slots 98

6.5.4 SIGNAL 98

6.5.5 SLOT 98

6.6 moc的魔法 99

6.6.1 moc_peony.cpp的源码 99

6.6.2 moc的工作清单 101

6.6.3 信号的真容 101

6.6.4 信号与槽的约会 102

6.7 深入理解信号与槽 107

6.7.1 信号与槽原理 107

6.7.2 如何使用信号与槽 108

6.7.3 信号与槽的连接类型 109

6.7.4 信号与槽经验谈 110

6.7.5 跨线程使用信号与槽 110

6.8 属性系统 114

6.8.1 静态属性 114

6.8.2 动态(运行时)属性 117

6.9 事件和事件过滤器 118

6.9.1 重写event() 119

6.9.2 重写特定事件处理器 120

6.9.3 事件过滤器 120

6.9.4 自定义事件 122

6.10 定时器事件 124

6.10.1 使用QTimer 125

6.10.2 使用QObject::startTimer 125

6.11 对象树与生命周期 126

6.12 智能指针 131

6.12.1 QPointer 131

6.12.2 QSharedPointer 132

6.12.3 QWeakPointer 133

6.12.4 QScopedPointer 134

6.12.5 QObjectCleanupHandler 135

6.13 动态类型转换 136

6.14 国际化 136

6.14.1 字符串国际化方法 137

6.14.2 创建译本 138

6.14.3 装载译文文件 138

6.14.4 运行时改变语言 138

第7章 Qt模板库介绍 140

7.1 使用QString 140

7.1.1 初始化一个字符串 141

7.1.2 操作字符串数据 141

7.1.3 字符串查询 142

7.1.4 编码转换 142

7.1.5 格式化输出 143

7.2 容器类 143

7.2.1 QList示例 144

7.2.2 QMap示例 146

第8章 Qt Gui编程 148

8.1 智能手机Gui特点 148

8.2 内建窗口控件介绍 149

8.2.1 QRadioButton 149

8.2.2 QCheckBox 150

8.2.3 QGroupBox 150

8.2.4 QLineEdit 152

8.2.5 QTextEdit 153

8.2.6 QTabWidget 154

8.2.7 QListWidget 155

8.2.8 Qt资源文件系统 158

8.2.9 QTableWidget 160

8.3 自定义窗口部件 166

8.3.1 使用QPainter绘图 166

8.3.2 为Android实现的ImageButton 167

8.3.3 文字渐变标签 169

第9章 多线程 174

9.1 上路吧,线程 174

9.2 线程自己的事件循环 176

9.3 岂能老死不相往来――线程间通信 177

9.3.1 跨线程的信号与槽 177

9.3.2 跨线程的事件 178

9.3.3 门铃示例程序 178

9.4 线程同步 182

9.5 使用QThread的注意事项 184

9.6 QThreadPool 184

9.7 高阶多线程API:QtConcurrent 185

第10章 网络编程 189

10.1 QNetworkAccessManager 189

10.1.1 http编程 190

10.1.2 ftp编程 198

10.2 QTcpSocket/QTcpServer 201

10.2.1 服务器 203

10.2.2 客户端 205

10.3 QUdpSocket 207

10.3.1 服务器 207

10.3.2 客户端 209

第11章 文件IO 211

11.1 QFile 211

11.2 QTextStream 214

11.3 QDataStream 215

第12章 XML 217

12.1 XML读取与解析 217

12.1.1 DOM 218

12.1.2 SAX 219

12.1.3 StAX 223

12.2 XML档生成与保存 226

12.2.1 QXmlStreamWriter 226

12.2.2 QDomNode::save() 227

12.2.3 疯狂原始人的方式 228

第13章 Qt on Android揭秘 229

13.1 APK是怎样炼成的 229

13.1.1 当你“运行”时 230

13.1.2 Android项目目录结构 232

13.1.3 string.xml介绍 233

13.1.4 AndroidManifest.xml介绍 233

13.1.5 libs.xml介绍 238

13.1.6 Androiddeployqt.exe都干了什么 239

13.2 Java与Qt的结合过程 242

13.2.1 应用入口 242

13.2.2 通信代理 245

13.2.3 QPA插件 248

13.3 Qt应用的状态 252

第14章 Android移动开发主题 253

14.1 按键处理 253

14.1.1 重写keyPressEvent/keyReleaseEvent 254

14.1.2 给子控件安装事件过滤器 255

14.1.3 应用级别的事件过滤器 256

14.2 触摸与手势 258

14.2.1 触摸 258

14.2.2 手势 263

14.3 传感器与手势 264

14.3.1 常见传感器介绍 264

14.3.2 Qt传感器手势类库介绍 268

14.3.3 摇动手势 268

14.3.4 覆盖手势 269

14.3.5 自由落体 269

14.3.6 缠绕手势 269

14.3.7 翻转手势 269

14.3.8 煽动手势 270

14.3.9 传感器手势的使用 270

14.4 拍照 271

14.4.1 QCamera和它的小伙伴 271

14.4.2 QCameraViewFinder 273

14.4.3 QCameraImageCapture 273

14.4.4 使用相机拍照 274

14.4.5 在QML应用中使用相机 277

14.5 录音与回放 278

14.5.1 录音类库 278

14.5.2 播放类库 279

14.5.3 录音与回放小示例 279

第15章 使用JNI扩展你的应用 286

15.1 使用JNI Environment 286

15.2 调用Java代码 287

15.2.1 Java方法签名 288

15.2.2 调用Java方法 289

15.2.3 extendsQtWithJava实例 291

15.2.4 QtAndroid名字空间 298

15.2.5 使用手机外部存储 298

15.3 Java调用C++ 299

第16章 纸上得来终觉浅,绝知此事要躬行 305

16.1 笔记qnotepad 306

16.1.1 首页设计与实现 308

16.1.2 笔记对象 316

16.1.3 笔记浏览与编辑 318

16.2 图片浏览器 324

16.2.1 文件选择控件 324

16.2.2 图片加载器 335

16.2.3 图片显示 344

16.3 IP地址查询 351

16.3.1 Json数据格式简介 352

16.3.2 Qt中的Json类库 352

16.3.3 程序详解 353

16.4 音乐播放器 358

16.4.1 云想衣裳花想容――Qt样式表 359

16.4.2 多媒体类库介绍 361

16.4.3 音乐播放器详解 362

16.5 天气预报 380

16.5.1 云中谁寄锦书来――GPS定位 382

16.5.2 天气查询与显示 387

16.6 拍照与后期处理 396

16.6.1 方寸天地纳缱绻,楚楚蕴秀薄纸间 398

16.6.2 图像处理算法 401

16.6.3 图片加载与显示 410

16.6.4 组织部长 413

附录 420

参考文献 427

前言/序言

  为什么写作本书

  2008年,我开始在CSDN网站写技术博客。在此之前,我的理想是写出受人待见的小说来,我也曾经在网络论坛上笔耕不辍获得一些成绩,也曾经发表过一些散文以及小说。而那一年,当我再次拾起笔来写东西时,却选择了技术。这个世界上,唯一不变的就是变化,随性如我,什么都能接受,理解不了就接受,不想接受的也接受,目标达不成也可以接受,于是技术博客写了几个月不想写了,也说服自己接受了,看起来什么都无所谓的样子,不过我并不喜欢杨坤的《无所谓》这首歌。
  2013年接近年底的时候,我决定重新开始撰写技术博客。这次是经过了理性的思考,而不是2008年那时的一时兴起率性而为。
  2013年的时候,我感到自己的脑容量开始变小,从前做项目时用到的很多技术慢慢地随风远去,终于渐行渐远渐无书,费尽思量也难以述说了。难道是迭代周期变短了吗?难道是我这台机器开始老化了吗?这个时候我能够回忆的,仅仅是当初学习某项技术时曾经遇到过挫折困顿彷徨犹豫,曾经辗转反侧寤寐思服,再无其他,我不想这样:年老时蹲在门槛上,唯一可以回忆的,就是年轻时曾经掌握了8种语言,开发过100款软件,回顾我的技术之路,就卡在“想当年……”这一句上。
  正如卡夫卡说过的那句“任何障碍都可以粉碎我”一样,某些简单的问题总能把人绊倒,资深的技术人员总不能理解为什么会这样。其实他忘了自己曾经走过同样的路,罗素说的对,参差多态乃幸福本源,但我们都太善于以己度人、以己绳人了。
  学习过程的艰辛,日积月累的渐悟或刹那之间的醍醐,随着岁月的流逝,终会成为遥远而模糊的回忆;而你当初大惑不解屡次跌倒的坑洼,学成之后看起来是那么“不可思议”,以至于你忘了曾经这样走过,不能理解别人为何总在一个地方犯错。的确,谁会在一再跌倒的地方做上记号,永志不忘?谁会把推敲再三的心得分门别类整理成文,开源给后学者以使其免蹈覆辙?事实上我从未想主动忘记自己半路出家初学编程的痛苦,但子在川上曰,逝者如斯夫,淡忘总在发生,而我们依旧前行,如果不予以记录,岁月的风霜雪雨终将掩埋你曾走过的路。所以,写文章这件事,更多是为了自己,记下亦是放下,却又可在想用之时根据记下的随时唤醒沉睡的经验记忆,对别人或又能解其困惑,利己利人之事,何乐不为?
  所以我决定重新开始技术博客的更新之旅,既可以识别自己的学习模式,固化已有的经验,形成系统的知识体系,又可以温故知新,增益知识的广度和厚度。而本书的写作正是缘起于我博客上的文章,不能不说是一次意外之喜。我愿意在有限的时间内不计代价地完成本书,这是我个人的兴趣所在。一个人总应该在某个时候有某件事,让你全力以赴地去完成,不计成败,不想得失,你所有的动力,就仅仅是你喜欢,你情愿把它做好。

  致谢

  第一个要感谢的,是发现我的编辑高洪霞老师,没有她,我很难有途径寻找这么一个机会回顾自己也惠及他人。在我的写作过程中,高老师给了我许多关切、鼓励和具体的建议,对于本书的完成具有至关重要的意义。
  我要特别感谢本书的文字编辑巩樱老师,她和本书初稿中的代码、文本格式、笔误、错漏等进行了艰苦的斗争,取得了巨大的成果。
  还要感谢出版社及为本书付出辛勤劳动的其他编辑,没有你们的辛苦付出和鼎力帮助,本书绝难顺利付梓出版。
  接下来要感谢的,是我的老婆赵建媛女士,尽管她担心本书可能不会大卖,担心我天天熬夜的辛苦可能白费,她还是毫不犹豫地支持我,在精神上和行动上都给予了我强有力的鼓励和帮助。写作本书期间,我心心念念只有书稿,对其他事情要么浑浑噩噩要么简单粗暴,给她带来了很多精神上的困扰和实际生活上的压力,但她依然微笑着陪我前行。没有老婆的支持,实在难以想象我可以一个人完成一部书这样一项浩大的工程。
  另外还要感谢我美丽可爱的女儿安悦瑄小朋友,四岁多的她还不明白写书是什么概念,但她还是很自豪地向她的小伙伴们宣告说她的爸爸正在写书。能够做一件让女儿感到爸爸很棒的事情,我觉得非常开心。写书这段时间我很少陪女儿玩耍,对此我深感不安,在这里向她说一句,亲亲我的宝贝,爸爸马上出关了。
  特别鸣谢:上海Qt开发联盟(QQ群号279906625)的群友们给了我很多鼓励和支持,在与他们的交流中频受启发获益良多。
  必须感谢所有在我写作期间对我嘘寒问暖、给予我帮助的朋友们,是你们让我觉得世界如此温暖。
  最后,也最应该感谢的,是肯花费时间和精力阅读本书的读者,你们的意见和建议,我会视若珍宝。

  这本书适合谁

  本书首先是一本介绍Qt程序设计技术的书籍,其次是讲述如何在移动平台Android上使用Qt框架进行开发的书籍。对于Qt技术感兴趣的读者,无论是专注于传统的桌面软件开发,还是希望尝试使用Qt在Android平台开发,都可以从本书中获得最根本、最重要的知识与实例。
  如果你刚接触Qt,希望能快速入门,本书第2章提供了图文并茂的环境搭建教程、简洁实用的Qt Creator集成开发环境介绍、各种开发工具的快速使用指南以及详细到令人咋舌的入门项目创建过程。同时,笔者也在第5章进一步介绍了Qt的布局管理器,在第8章扼要讲述了可以在桌面和Android两个平台上同时使用的Qt Gui控件,这些可以作为基础教程。
  如果你已经使用Qt开发过桌面软件或者嵌入式软件,现在想在Android平台上小试牛刀,那就赶快行动吧。本书以“从零开始也能学会Qt on Android开发”为目标,在第3章首先详细讲述JDK、Android SDK、Android NDK、环境变量设置、安卓虚拟设备创建、手机连接等一切可能给你入门带来障碍的内容,然后以Hello Qt On Android为基础,不厌其细地讲述如何创建支持Android平台的项目、如何配置Android相关的项目选项、如何部署Qt on Android应用,力求使你觉得“原来一切这么简单啊”,最后又介绍如何在Android上使用Qt及Android的日志系统、如何使用adb过滤应用日志,以备你在开发过程中遇到问题时不再为调试问题发愁。在第13章,笔者深入Qt on Android内部,一步一步为你揭开Qt何以能够在Android平台运行的秘密,让你做个明白人。当然,如果你对此不感兴趣,可以跳到第14章开始看,那里有移动开发的各种主题。第15章是笔者为你准备的进阶利器,以便你需要呼叫Android系统为你的应用助拳时有路可循。至于第16章,则是本书所介绍内容在Android平台的大阅兵,你不但会看到Qt传统的各种技术(如网络、XML、Qt Widgets、文件IO、Json、QTL、事件过滤器等)如何在Android平台上跃马扬鞭,也会看到传感器、录音、多点触控等移动开发技术的实际应用,还会看到JNI的实作,产生原来我不是一个人在战斗的感觉。
  如果你对Qt的信号与槽念兹在兹,想知其然而后知其所以然,本书能够充分满足你的需要。笔者始终认为,信号与槽是Qt框架最有特色的内容,是一切Qt重要技术的基石,因此笔者在第5章和第6章先后多次从不同角度进行了讲述,既涵盖了信号与槽的各种典型使用场景,也抽丝剥茧剖析了信号与槽的原理,甚至不厌其烦花大量篇幅讲述了Qt元对象系统,为的就是让你从“大概知道怎么用”的阶段提升到“了然为什么这么用”的境界。
  很多开发者在实际的项目开发中经常使用多线程,我曾经在网络上看到太多的人对Qt多线程编程感到迷惑,提出了各种各样的问题,尤其是当信号与槽遭遇多线程,不得不说的故事就数不胜数了,难免让人感叹不幸的问题各有其不幸。而本书的第6章、第9章可以带领你走出泥淖。
  好吧,如果你对Qt的网络编程(第10章)、Qt模版库如何使用(第7章)、Qt的XML技术(第12章)感兴趣,本书也不会让你失望。
  哦?你希望介入Qt的事件处理流程?没问题,第6章的第9节就是为你准备的,看了它你就可以掌握Qt事件处理的七种武器,想拦谁就拦谁,为所欲为。
  你需要什么技术基础
  Qt是基于C++的开发框架,大量使用面向对象概念,诸如继承、虚函数、重载、纯虚类等,如果你从未接触过C++,笔者还是建议你先了解C++和面向对象编程,否则本书可能会打击你学习新技术的信心。如果你已接触过C++但不是十分熟悉,没关系,遇到不明之处翻阅C++书籍即可,我想这应该不会影响对本书内容的理解。
  如果你有C++基础但从未接触过GUI编程,不要担心,Qt虽然是基于事件机制的,但它良好的封装使得你可以从Qt开始你的第一个GUI应用。
  如果你想在Qt中通过调用Java代码来获得使用Android系统功能的特权,那你可能需要一点Java语言和Android编程的基础。不过没有也没关系,如果你熟悉C++,学习并掌握Java语言的基础部分是十分容易之事,而Android应用开发的很多概念和模式又和Qt相通……
  你需要什么软硬件环境
  笔者使用Windows 7作为开发环境,可供参考。
  至于开发主机的硬件配置,笔者建议配置为:
  双核以上CPU
  4GB以上内存
  而为了验证Qt on Android应用在手机上的效果,还需要一部Android手机,系统版本在2.3以上。建议配置为:
  Android系统4.0及以上
  内存1GB以上
  4GB以上闪存或加配SD卡
  为了连接电脑和手机进行安装与调试,需要:
  一根与手机匹配的数据线
  与手机匹配的ADB驱动
  本书术语表
  作者在写作本书的过程中,不可避免地引用了部分英文术语以及缩写,为不引起歧义,有必要把它们界定一下。
  IDE:Integrated Development Environment,集成开发环境,如Qt Creator,Visual Studio等。
  GUI:Graphical User Interface,指采用图形方式显示的计算机操作用户界面。笔者行文过程中有时使用其简写GUI,有时以图形用户界面指代,有时我也用UI替代GUI。
  Application Framework:你可以理解为它是一个拥有诸多应用开发所需的基本功能(如程序模型、网络、XML、GUI组件等)的类库,开发人员只要从其中撷取符合自己需求的模块,就可以像搭积木一样完成自己的应用。我在书中有时称其为应用框架、应用开发框架,视上下文环境而定。
  API:Application Programming Interface。系统或应用框架开放出来,给程序员使用的接口,就是API。它可以是C函数那样的东西,也可以是C++类,还可以是信号……
  Android:一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。比较常用的中文对应词是安卓和安致。本文多数时候直接使用Android一词,有时使用安卓,有时还以Android指代开发它的公司和组织,视上下文而定。
  SDK:Software Development Kit,软件开发工具包。广义上指辅助开发某一类软件的相关文档、源码、范例和工具的集合,比如Qt SDK,Android SDK……
  NDK:Native Development Kit,本书专指Android NDK,与SDK类似,它是Android提供的一系列工具、文档、源码、范例的合集,帮助开发者快速开发C/C++的动态库,并能自动将so和Java应用一起打包成APK。
  APK:Android Package,即Android安装包。APK文件其实是.zip格式,但后缀名被修改为apk,它包括编译过的Java代码、配置文件、图片、字符串等资源,你可以认为它是与Windows下的msi、Red Hat Linux的rpm包、Ubuntu的deb包类似的东西。本书多数时候直接使用APK这个缩写,有时也会用APK指代Android应用。
  Widget:这个很难翻译,多数时候我直接使用英文单词本身,在讲述Qt应用框架时,我有时用控件指代Widget。也有人将Widget翻译为微件、窗口小部件……在Android上,Widget有其专门含义,特指由应用提供的显示在桌面上的小部件。
  AVD:Android Virtual Device,中文对应的名字,叫安卓虚拟设备、虚拟机、模拟器等,笔者有时用AVD,有时用模拟器。
  MFC:Microsoft Foundation Classes,微软基础类库的简称。
  Activity:Android的应用程序组件,一般用活动一词来指代它。你可以简单地这么理解:一个Activity拥有屏幕上的一个可见窗口,能够处理各种用户事件,对用户操作做出响应。