第1章 入门 1
1.1了解Android平台功能 1
1.1.1设备连接 2
1.1.2触摸 2
1.1.3地理位置 3
1.1.4硬件传感器 3
1.1.5本地数据库与存储 4
1.1.6相机支持 4
1.1.7消息与推送通知 4
1.1.8 WebKit Web浏览器 5
1.1.9进程管理 5
1.1.10 Android OS特性小结 6
1.2准备开发环境 6
1.2.1文本编辑器与工作目录 7
1.2.2 Web服务器 7
1.2.3模拟器 9
1.3 Hello World 13
1.4小结 15
第2章 构建移动HTML输入表单 17
2.1面向移动Web的HTML 17
2.1.1面向移动的网页 17
2.1.2添加表单元素 21
2.2添加样式 22
2.2.1使用CSS3的表单样式 24
2.2.2改进页面标题的外观 26
2.2.3针对不同的屏幕尺寸编写代码 27
2.2.4处理设备方向的变化 28
2.3添加表单验证 32
2.4小结 38
第3章HTML5 Storage API 39
3.1 Web Storage API 39
3.1.1使用JSON将对象保存到Web Storage中 41
3.1.2 Local Storage与SessionStorage 45
3.2Web SQL Database 45
3.2.1使用客户端数据库保存任务清单条目 46
3.2.2数据库的版本化与升级 51
3.3小结 53
第4章 构建多页面应用 55
4.1单个HTML文件、多个应用页面 55
4.1.1创建视图管理器 58
4.1.2实现视图动作 60
4.2构建应用的主界面 62
4.2.1修改ViewManager功能 65
4.2.2主界面的存储需求 66
4.2.3装配主界面 70
4.3构建所有任务界面 72
4.4实现视图栈 78
4.5小结 81
第5章 与云进行同步 83
5.1探索在线存储的选择 83
5.1.1在线同步存储的需求 83
5.1.2避免3层架构 84
5.1.3用户认证 84
5.1.4 JavaScript同步库 84
5.1.5可能的同步解决方案 85
5.2 Google App Engine入门 85
5.2.1在本地部署jsonengine 86
5.2.2选择合适的同步模式 87
5.2.3向jsonengine发送离线数据 87
5.3针对在线同步更新用户界面 89
5.4开发桌面界面 92
5.4.1查询jsonengine实例 92
5.4.2将应用部署到云中 95
5.5小结 95
第6章 与原生应用竞争 97
6.1添加轻量级动画与类似于原生应用的布局 97
6.1.1添加简单的旋转加载器 97
6.1.2添加可滚动的内容 100
6.1.3修改动作栏 102
6.2为应用添加位置感知特性 103
6.3离线运行应用 108
6.3.1离线缓存清单文件 108
6.3.2探索隐蔽的离线缓存特性 109
6.3.3检测连接状态 111
6.4小结 112
第7章 探索交互性 113
7.1 HTML5 Canvas简介 113
7.2为Canvas绘制增加交互性 115
7.2.1交互:使用鼠标 115
7.2.2交互:使用触摸 117
7.3实现Canvas动画 119
7.3.1创建动画循环 120
7.3.2绘制一帧动画 121
7.3.3绘制图像:考虑设备DPI 124
7.4高级动画技术 128
7.4.1在动画中实现逼真的移动 128
7.4.2 Canvas变换与动画 132
7.4.3小汽车动画的变换 134
7.5小结 137
第8章 基于位置的服务与移动地图 139
8.1基于位置的服务 139
8.2地理社交网络 140
8.3移动地图 141
8.3.1使用Google Maps显示地图 141
8.3.2 Tile5:另一个HTML5Mapping API 143
8.3.3向Google Map添加标记 146
8.3.4显示标记的详细信息 147
8.4针对移动优化的地图UI 149
8.4.1地图UI模型 149
8.4.2编写移动地图UI样板 150
8.4.3在样板代码中实现UI导航 154
8.4.4使用导航栏选择标记 159
8.5小结 166
第9章 使用PhoneGap桥接原生应用 167
9.1桥接框架简介 167
9.1.1何时使用PhoneGap 168
9.1.2下载PhoneGap 168
9.2示例PhoneGap应用 168
9.2.1构建示例应用 170
9.2.2探索示例应用 175
9.3一个简单的PhoneGap地图应用 179
9.3.1修改示例PhoneGap项目 179
9.3.2将现有代码转换为PhoneGap应用 184
9.4小结 187
第10章 集成Social API 189
10.1连接到Web API 189
10.1.1何谓JSONP 189
10.1.2处理缺少JSONP支持的API 194
10.1.3 Geominer API简介 196
10.2在Moundz中定位资源 198
10.2.1使用Geominer API找到附近资源 200
10.2.2使用Geolocation追踪位置 203
10.3实现用户登录 206
10.3.1构建欢迎与登录界面 206
10.3.2 TwitterAnywhere与登录过程 208
10.3.3另一种通过Geominer实现的Twitter认证 212
10.4小结 215
第11章 移动UI框架比较 217
11.1移动UI框架概览 217
11.1.1框架之间的异同点 217
11.1.2为框架比较做好准备 219
11.2 Jo 222
11.2.1 Jo入门 222
11.2.2当Moundz遇到Jo 224
11.3 jQTouch 229
11.3.1 jQTouch入门 229
11.3.2将jQTouch应用到Moundz上 231
11.4 jQueryMobile 235
11.4.1 jQuery Mobile入门 236
11.4.2 Moundz与jQuery Mobile 238
11.5 Sencha Touch 243
11.5.1 Sencha Touch入门 243
11.5.2 Moundz与Sencha Touch 245
11.6小结 252
第12章 完善与打包应用以进行发布 255
12.1继续使用jQuery Mobile 255
12.1.1恢复登录界面 255
12.1.2改进导航布局 259
12.2搜集资源 261
12.2.1构建资源详细信息界面 261
12.2.2使用Geominer实现资源追踪 267
12.3将Moundz打包为原生应用 269
12.3.1针对PhoneGap打包 269
12.3.2处理应用权限 272
12.4 PhoneGap、认证与Intent 273
12.4.1之前的Web认证流程 273
12.4.2 Android Intent概览 274
12.4.3使用PhoneGap插件处理Intent 276
12.5打包应用以进行发布 281
12.6小结 284
第13章 移动计算的未来 285
13.1移动计算时代 285
13.1.1全球范围的现象 285
13.1.2桌面已死 286
13.1.3拥抱渐进增强 287
13.2移动技术预测 288
13.2.1工具与库的改进 289
13.2.2设备架构的变化 290
13.2.3面向未来架构的编码 291
13.3物联网 291
13.3.1硬件传感器网络 292
13.3.2人体传感器 293
13.4小结 294
附录A调试Android Web应用 295