第1章 Android开发简介 1
1.1 了解Android的优势 1
1.2 构建本地应用程序 2
1.3 Android的历史 2
1.4 Android用户界面 7
1.5 Android应用程序 8
1.6 Google Play简介 8
1.7 小结 10
第2章 搭建开发环境 11
2.1 在Windows上安装Java JDK和JRE 11
2.2 在Windows上安装Eclipse集成开发环境 13
2.2 安装Eclipse 13
2.2.2 在Eclipse中配置Java JRE 14
2.2.3 熟悉Eclipse 14
2.3 在Windows上安装Android SDK 16
2.4 Mac系统上安装和使用Java 19
2.4.1 在Mac电脑上下载并安装JDK 20
2.4.2 在Mac上下载并安装Eclipse IDE 20
2.4.3 在Mac上下载并安装Android SDK 20
2.4.4 在Mac上安装Android Developer Tools插件 21
2.5 小结 22
第3章 创建第一个Android应用程序 23
3.1 创建Android应用程序 23
3.2 运行Android项目 25
3.2.1 创建Android虚拟设备 25
3.2.2 在AVD中运行应用程序 26
3.2.3 使用Android虚拟设备的最佳实践 28
3.2.4 在实际设备上安装Android应用程序 28
3.3 在Android项目中使用Lint 29
3.4 Android项目文件 29
3.4.1 XML布局文件 29
3.4.2 XML资源文件 31
3.4.3 XML文件中的ID属性及其在生成的文件中的作用 32
3.4.4 Activity文件 33
3.4.5 Activity的生命周期 35
3.4.6 访问Activity中的TextView 35
3.4.7 应用程序日志 37
3.4.8 Android清单文件 39
3.5 小结 40
第4章 创建Android用户界面 41
4.1 重构代码 41
4.2 实施Strict模式 43
4.3 创建一个简单的用户界面 44
4.3.1 线性布局的用法 45
4.3.2 创建按钮事件处理程序 48
4.3.3 更新计时器显示 51
4.3.4 显示正在运行的计时器 53
4.4 Activity生命周期 55
4.4.1 Android Activity生命周期 57
4.4.2 修复Activity生命周期问题 59
4.5 实现Android设备的振动 59
4.6 保存用户首选项 61
4.6.1 创建新的Activity 61
4.6.2 显示新的Activity 62
4.6.3 保存应用程序的状态 63
4.6.4 使用Shared Preferences 65
4.7 小结 67
第5章 提高Android应用程序可用性 69
5.1 重构代码 69
5.2 改善Setting Activity 75
5.2.1 显示Toast弹出窗口 75
5.2.2 使用后退按钮从Settings Activity返回 78
5.3 操作栏和菜单 80
5.3.1 创建菜单 80
5.3.2 创建一个操作栏 82
5.3.3 返回Home画面 84
5.4 使用通知 86
5.4.1 创建通知 86
5.4.2 显示或替换一个新的通知 89
5.4.3 定期显示通知 89
5.5 创建数据库 92
5.5.1 创建数据模型 93
5.5.2 创建数据库及其表 93
5.5.3 检查表的创建 96
5.5.4 创建表间的关系 97
5.5.5 创建路线列表视图 101
5.6 小结 106
第6章 自定义Android应用程序 107
6.1 重构应用程序 107
6.2 了解屏幕的差异 108
6.2.1 屏幕尺寸和屏幕密度 108
6.2.2 了解设备 109
6.3 使应用程序与分辨率无关 110
6.4 使用配置限定符 112
6.4.1 创建启动图标 114
6.4.2 创建通知图标 115
6.4.3 让应用程序适合不同的屏幕尺寸 116
6.4.4 使用资源尺寸 118
6.4.5 在Java代码中改变文字的大小 120
6.4.6 修改横屏模式的布局 122
6.4.7 修改平板电脑的布局 123
6.4.8 创建并排的视图 124
6.5 使用样式和主题 126
6.5.1 启用夜间模式 128
6.5.2 切换主题 130
6.5.3 检测亮度级别 134
6.5.4 处理不稳定的传感器值 136
6.6 小结 138
第7章 使应用程序支持位置感知 139
7.1 重构代码 139
7.2 定位设备的位置 143
7.2.1 在虚拟设备中测试GPS 148
7.2.2 GPS定位的精度 149
7.2.3 提高GPS定位的用户体验 150
7.2.4 显示Google Maps 153
7.3 处理不精确的位置数据 161
7.4 保存GPS数据 167
7.4.1 插入、更新和删除数据 167
7.4.2 更新模型 170
7.4.3 在应用程序中使用数据库 176
7.5 显示GPS数据 179
7.5.1 使用ListActivity 179
7.5.2 在Google地图中显示GPS数据 184
7.6 小结 189
第8章 集成社交网络 191
8.1 重构代码 191
8.2 将照片整合到Android应用程序中 191
8.2.1 拍照 192
8.2.2 检查是否可以拍照 194
8.2.3 在应用程序中显示相片 198
8.2.4 获得Activity的结果 203
8.3 与朋友分享内容 207
8.3.1 显示选择器 207
8.3.2 分享文本和图片 210
8.4 小结 212
第9章 优化性能、内存和电源管理 213
9.1 重构代码 213
9.2 让应用程序以服务形式运行 213
9.2.1 处理方向改变 214
9.2.2 创建服务 217
9.3 延长电池寿命 229
9.3.1 确定用电量 230
9.3.2 根据电量水平进行响应 231
9.3.3 定期检查电池 237
9.4 加快数据库运行速度 239
9.4.1 通过索引加速数据库 239
9.4.2 使用异步方式加速数据库 241
9.5 小结 244
第10章 测试应用程序 247
10.1 重构代码 247
10.2 使用JUnit进行测试 247
10.2.1 创建一个新的测试应用程序 248
10.2.2 提高测试覆盖率 253
10.2.3 加快测试速度 254
10.2.4 通过重构使测试更容易 258
10.3 使用Android JUnit扩展来测试 259
10.3.1 测试Android Activity 260
10.3.2 创建Mock应用程序 263
10.3.3 测试Activity生命周期 265
10.3.4 进一步测试Activity 267
10.3.5 通过与UI的交互来测试 269
10.4 测试服务 270
10.5 使用Monkey测试 272
10.6 自动运行测试 275
10.6.1 从命令行运行测试 275
10.6.2 安装Jenkins 277
10.6.3 使用Git版本控制 278
10.6.4 Git Bash命令概述 280
10.6.5 使用Jenkins 280
10.7 在多种设备上测试 281
10.8 小结 283
第11章 针对不同设备和国家进行优化 285
11.1 重构代码 285
11.2 国际化 287
11.2.1 支持多语言 287
11.2.2 从简单的机器翻译开始 288
11.2.3 在用户的帮助下改善翻译结果 292
11.2.4 添加更多语言版本 294
11.3 适应各种方言 298
11.3.1 添加区域码 298
11.3.2 处理单词的变化:Route、Path、Trail和Track 299
11.4 处理各种语言格式 300
11.4.1 支持从右至左布局 300
11.4.2 处理日期、数字和货币的变体 301
11.5 支持向后兼容 303
11.5.1 使用Android支持库 303
11.5.2 Android版本检查 303
11.6 为各种屏幕尺寸进行构建 306
11.7 使用Fragment 309
11.8 小结 314
第12章 使用Google Play和Amazon Appstore来销售应用程序 317
12.1 建立媒体策略 317
12.1.1 使用Google Play 317
12.1.2 使用服务和API实现Google许可 321
12.2 在应用程序中使用广告 322
12.3 使用Amazon Appstore 325
12.4 小结 327