资源名称:Android应用测试与调试实战

内容简介:

本书是Android应用测试与调试领域最为系统、深入且极具实践指导意义的著作,由拥有近10年从业经验的资深软件开发工程师和调试技术专家撰写,旨在为广大程序员开发高质量的Android应用提供全方位指导。它从Android应用自动化测试工程师和开发工程师的需求出发,从测试和调试两个维度,针对采用Java、HTML 5、C++&NDK三种Android应用开发方式所需要的测试和调试技术、方法进行了细致而深入的讲解,为Android应用的自动化测试和调试提供原理性的解决方案。

全书一共16章,分为两大部分:第一部分为自动化测试篇(第1~11章),详细讲解了进行Android自动化测试需要掌握的各种技术、工具和方法,包括Android自动化测试基础、Android应用的白盒自动化测试和黑盒自动化测试的技术和原理、Android服务组件和内容组件的测试、HTML 5应用和NDK应用的测试,以及Android应用的兼容性测试和持续集成自动化测试;第二部分为调试技术篇(第12~16章),详细讲解了Android应用调试所需要的各种工具的使用、操作日志的分析、内存日志的分析,以及多线程应用HTML 5 应用和NDK 应用的调试方法和技巧。

资源目录:

前言

第1章Android自动化测试初探 1

1.1 快速入门 1

1.2 待测示例程序 2

1.3 第一个Android应用测试工程 6

1.4 搭建自动化开发环境 12

1.4.1 安装Eclipse和ADT开发包 12

1.4.2 创建模拟器 13

1.4.3 启动模拟器 21

1.4.4 连接模拟器 23

1.4.5 连接手机 24

1.5 本章小结 29

第2章 Android自动化测试基础 30

2.1 Java编程基础 30

2.2 JUnit简介 36

2.2.1 添加测试异常情况的测试用例 41

2.2.2 测试集合 43

2.2.3 测试准备与扫尾函数 45

2.2.4 自动化测试用例编写注意事项 47

2.3 Android应用程序基础 47

2.3.1 Android权限系统 47

2.3.2 应用的组成与激活 51

2.3.3 清单文件 54

2.3.4 Android应用程序的单UI线程模型 56

2.4 本章小结 57

第3章 Android界面自动化白盒测试 58

3.1 Instrumentation测试框架 58

3.1.1 Android仪表盘测试工程 58

3.1.2 仪表盘技术 60

3.1.3 Instrumentation.ActivityMonitor嵌套类 63

3.2 使用仪表盘技术编写测试用例 64

3.2.1 ActivityInstrumentationTest-Case2测试用例 66

3.2.2 sendKeys和sendRepeatedKeys函数 70

3.2.3 执行仪表盘测试用例 72

3.2.4 仪表盘测试技术的限制 74

3.3 使用robotium编写集成测试用例 77

3.3.1 为待测程序添加?robotium用例 77

3.3.2 测试第三方应用 80

3.3.3 robotium关键源码解释 84

3.4 Android自动化测试在多种屏幕下的注意事项 87

3.5 本章小结 90

第4章 Android界面自动化黑盒测试 91

4.1 monkey工具 91

4.1.1 运行monkey 93

4.1.2 monkey命令选项参考 97

4.1.3 monkey脚本 98

4.1.4 monkey服务器 105

4.2 编写monkeyrunner用例 109

4.2.1 为待测程序录制和回放用例 110

4.2.2 运行monkeyrunner 110

4.2.3 手工编写monkeyrunner代码 111

4.2.4 编写monkeyrunner插件 114

4.3 本章小结 118

第5章 测试Android服务组件 119

5.1 JUnit的模拟对象技术 119

5.2 测试服务对象 128

5.2.1 服务对象简介 128

5.2.2 在应用中添加服务 130

5.2.3 测试服务对象 136

5.3 本章小结 140

第6章 测试Android内容供应组件 142

6.1 控制反转 142

6.1.1 依赖注入 144

6.1.2 服务定位器 146

6.2 内容供应组件 147

6.2.1 统一资源标识符 150

6.2.2 MIME类型 152

6.2.3 内容供应组件的虚拟表视图 152

6.3 内容供应组件示例 154

6.4 测试内容供应组件 159

6.5 本章小结 163

第7章 测试Android HTML 5应用 164

7.1 构建Android HTML 5应用 164

7.1.1 WebView应用 164

7.1.2 使用视口适配Android设备的多种分辨率 170

7.1.3 使用CSS适配多种分辨率 175

7.1.4 使用Chrome浏览器模拟移动设备浏览器 176

7.2 使用QUnit测试HTML 5网页 177

7.2.1 QUnit基础 177

7.2.2 QUnit中的断言 179

7.2.3 测试回调函数 181

7.2.4 测试WebView应用 182

7.3 本章小结 185

第8章 使用Selenium测试HTML 5浏览器应用 186

8.1 Selenium组成部分 186

8.2 安装Selenium IDE 187

8.3 Selenium IDE界面 188

8.3.1 菜单栏 188

8.3.2 工具栏 189

8.4 使用Selenium 189

8.4.1 使用Selenium IDE录制测试用例 189

8.4.2 运行Selenium测试用例 194

8.4.3 等待操作完成 199

8.4.4 Selenium WebDriver命令 200

8.5 数据驱动测试 206

8.6 Selenium编程技巧 208

8.6.1 在测试代码中硬编码测试数据 208

8.6.2 重构Selenium IDE生成的代码 209

8.7 本章小结 212

第9章 Android NDK测试 213

9.1 安装NDK 213

9.2 NDK的基本用法 214

9.3 编译和部署NDK示例程序 214

9.4 Java与C/C++之间的交互 217

9.4.1 Makefiles 222

9.4.2 动态模块和静态模块 222

9.5 在Android设备上执行NDK单元测试 223

9.6 unittest++使用基础 228

9.6.1 添加新测试用例 228

9.6.2 测试用例集合 229

9.6.3 验证宏 229

9.6.4 数组相关的验证宏 230

9.6.5 设置超时 230

9.7 本章小结 231

第10章 Android其他测试 232

10.1 Android兼容性测试 232

10.1.1 运行Android兼容性测试用例集合 232

10.1.2 兼容性测试计划说明 237

10.1.3 添加一个新的测试计划 238

10.1.4 添加一个新的测试用例 239

10.1.5 调查CTS测试失败 241

10.2 Android脚本编程环境 243

10.2.1 Android脚本环境简介 243

10.2.2 安装SL4A 243

10.2.3 为SL4A安装脚本引擎 244

10.2.4 编写SL4A脚本程序 246

10.2.5 在PC上调试脚本程序 250

10.3 国际化测试 251

10.4 模拟来电中断测试 254

10.5 本章小结 255

第11章 持续集成自动化测试 257

11.1 在Ant中集成Android自动化测试 257

11.1.1 Ant使用简介 257

11.1.2 Android应用编译过程 262

11.1.3 使用Ant编译Android工程 263

11.2 在Maven中集成Android自动化测试 268

11.2.1 使用Android Maven Archetypes创建新Android工程 268

11.2.2 Android Maven工程介绍 270

11.2.3 与设备交互 271

11.2.4 与模拟器交互 272

11.2.5 集成自动化测试 274

11.3 收集代码覆盖率 276

11.4 本章小结 280

第12章 Android功能调试工具 281

12.1 使用Eclipse调试Android应用 281

12.1.1 Eclipse调试技巧 282

12.1.2 使用JDB调试 294

12.1.3 设置Java远程调试 296

12.1.4 调试器原理简介 301

12.2 查看Android的logcat日志 302

12.2.1 过滤logcat日志 303

12.2.2 查看其他logcat内存日志 304

12.3 Android调试桥接 304

12.3.1 adb命令参考 306

12.3.2 执行Android shell命令 309

12.3.3 dumpsys 312

12.4 调试Android设备上的程序 317

12.4.1 调试命令行程序 317

12.4.2 调试Android应用 318

12.4.3 调试Maven Android插件启动的应用 321

12.5 本章小结 322

第13章 Android性能测试之分析操作日志 323

13.1 使用Traceview分析操作日志 326

13.1.1 记录应用操作日志 326

13.1.2 Traceview界面说明 328

13.1.3 使用Traceview分析并优化性能瓶颈 329

13.2 使用DDMS 334

13.2.1 使用DDMS 335

13.2.2 DDMS与调试器交互的原理 336

13.2.3 三种启动操作日志记录功能的方法 338

13.3 使用dmtracedump分析函数调用树 339

13.4 本章小结 341

第14章 分析Android内存问题 343

14.1 Android内存管理原理 343

14.1.1 垃圾内存回收算法 343

14.1.2 GC发现对象引用的方法 351

14.1.3 Android内存管理源码分析 352

14.1.4 Logcat中的GC信息 361

14.2 调查内存泄露工具 362

14.2.1 Shallow size和Retained size 362

14.2.2 支配树 363

14.3 分析Android内存泄露实例 364

14.3.1 在DDMS中检查示例问题程序的内存情况 366

14.3.2 使用MAT分析内存泄露 368

14.3.3 弱引用 372

14.3.4 MAT的其他界面使用方法 373

14.3.5 对象查询语言OQL(Object Query Language) 376

14.3.6 使用jHat分析内存文件 381

14.4 显示图片 382

14.4.1 Android应用加载大图片的最佳实践 386

14.4.2 跟踪对象创建 388

14.5 频繁创建小对象的问题 390

14.6 Finalizer的问题 393

14.7 本章小结 394

第15章 调试多线程和HTML 5应用 395

15.1 调试应用无响应问题 395

15.2 Android中的多线程 397

15.3 调试线程死锁 400

15.3.1 资源争用问题 400

15.3.2 线程同步机制 405

15.3.3 解决线程死锁问题 406

15.4 StrictMode 410

15.4.1 在应用中启用StrictMode 413

15.4.2 暂时禁用StrictMode 415

15.5 调试Android上的浏览器应用 416

15.5.1 在Android系统自带的浏览器上调试 416

15.5.2 在Chrome浏览器上调试 418

15.6 本章小结 422

第16章  调试NDK程序 423

16.1 使用Eclipse调试Android NDK程序 423

16.2 在命令行中调试NDK程序 426

16.3 Android的C/C++调试器的工作原理 431

16.3.1 调试符号 433

16.3.2 源码 433

16.3.3 多线程调试的问题 433

16.4 本章小结 434

资源截图:

Android应用测试与调试实战