分类:
2012-12-27 11:48:11
移动开发类精品图书推荐——《AIR Android应用开发实战》
本书由资深Adobe技术专家兼资深Android应用开发工程师亲自执笔,既系统全面地讲解了如何利用Adobe AIR技术开发Android应用,又细致深入地讲解了如何将已有的基于PC的AIR应用移植到Android设备上。不仅包含大量实践指导意义极强的实战案例,还包括大量建议和最佳实践,是系统学习AIR Android应用开发不可多得的参考书。
全书共16章,分为五个部分:准备篇(1~2章) 主要介绍了利用AIR开发Android应用之前需要了解的基本信息、开发环境的搭建,以及一个简单的AIR Android应用开发的全过程,旨在让读者对AIR Android应用开发有一个全面清晰的认识;基础篇(3~10章)对AIR移动开发技术进行了系统而全面地讲解,包括移动设备上的用户交互方式、加速计的使用、地理定位功能、整合系统程序、访问设备资源、网络通信、多媒体、文件和数据库等,以及程序的调试和发布;进阶篇(11~13章)以AIR桌面应用开发为参照对象,讲解了AIR移动开发的重点和难点,如何针对移动设备进行界面设计,如何提高用户体验,以及如何提升程序的性能等,作者分享了大量具有实际意义的技巧和最佳实践;实战篇(14~15章)详细讲解了一款游戏的开发过程,将AIR移动技术和Flash Web技术灵活地结合了起来,展现了Flash技术在移动平台上的巨大潜力;高级篇(第16章)讲解了AIR 3.0的新特色—本地扩展,本地扩展为AIR技术提供了超强的扩展能力,使得开发者可以摆脱AIR的技术局限性。
作者简介 · · · · · ·
邱彦林(网名:walktree) 资深Adobe技术专家和资深Android开发工程师,精通ActionScript 2、ActionScript3、Flex、FMS等;有多年Flash相关技术开发经验,开发了大量Flash/Flex项目,是开源项目as3-pdf reader的创建者,并维护至今,在Adobe技术社区有较高的知名度和影响力。国内Android应用开发的先驱者之一,对Android应用开发也有非常深入的研究,尤其精通AIR Android应用的开发。他对PHP和Python相关的技术也有一定的研究。
此外,他还是一位颇具经验的技术撰稿人和技术作家,曾经在社区和《程序员》杂志上发表了大量技术文章,著有《Flex第一步》等著作。
目录 · · · · · ·
前言
第一篇 准备篇
第1章 AIR Android开发简介 / 2
1.1 开发之前需要了解的信息 / 2
1.1.1 AIR Android开发的可行性 / 2
1.1.2 开发过程中常见的问题 / 4
1.1.3 优势和局限性 / 6
1.2 搭建开发环境 / 7
1.2.1 安装Android SDK / 7
1.2.2 使用Flash Professional CS5 / 9
1.2.3 使用Flash Builder 4.5 / 13
1.2.4 构建开源的开发环境 / 16
1.3 实战:一个简单的AIR项目 / 17
1.4 本章小结 / 20
第2章 第一个AIR Android程序:翻转黑白棋 / 21
2.1 游戏的设计思路 / 21
2.2 像往常一样编写ActionScript代码 / 23
2.2.1 创建棋子类Grid / 23
2.2.2 编写主类Main / 24
2.3 设置程序属性 / 31
2.3.1 了解应用程序描述文件 / 31
2.3.3 设置访问权限 / 32
2.4 打包APK文件 / 33
2.5 安装和运行程序 / 34
2.5.1 使用模拟器运行程序 / 34
2.5.2 在真机上运行程序 / 39
2.6 本章小结 / 40
第二篇 基础篇
第3章 处理用户交互 / 42
3.1 关于多点触摸 / 42
3.2 处理触摸事件 / 43
3.2.1 使用TouchEvent类 / 43
3.2.2 触摸事件与鼠标事件的区别 / 47
3.3 处理手势动作 / 48
3.3.1 放大与缩小手势 / 49
3.3.2 旋转手势 / 52
3.3.3 Swipe手势 / 53
3.4 本章小结 / 56
第4章 加速计 / 57
4.1 Accelerometer API用法 / 57
4.2 重力小球实例 / 59
4.2.1 如何模拟重力场 / 59
4.2.2 绘制小球 / 60
4.2.3 让小球总是掉到屏幕下方 / 61
4.2.4 为小球设置围墙 / 62
4.2.5 优化代码后运行程序 / 64
4.2.6 管理程序的状态 / 64
4.3 加速计实战:检测手机晃动 / 66
4.4 本章小结 / 68
第5章 地理定位 / 69
5.1 开启手机的地理定位功能 / 69
5.2 Geolocation API用法 / 70
5.3 地理定位实战:自动查询地址和天气 / 73
5.3.1 查询地址Geocoding / 74
5.3.2 查询本地天气Weather / 75
5.3.3 代码解析 / 76
5.3.4 测试运行 / 79
5.4 本章小结 / 83
第6章 整合系统程序 / 84
6.1 使用自定义URI调用系统程序 / 84
6.1.1 电话拨号tel / 84
6.1.2 发送短信sms / 88
6.1.3 发送邮件mailto / 90
6.2 使用Android系统自带的地图服务 / 92
6.3 使用StageWebView加载网页 / 95
6.4 本章小结 / 100
第7章 多媒体 / 101
7.1 使用摄像头 / 101
7.1.1 摄像头的传统用法 / 101
7.1.2 使用CameraUI类调用摄像程序 / 103
7.2 使用设备上的多媒体资源 / 108
7.2.1 使用CameraRoll类向系统相册添加照片 / 108
7.2.2 使用CameraRoll类选取照片 / 111
7.3 使用麦克风录音 / 115
7.4 播放视频 / 122
7.4.1 AIR支持的视频格式 / 122
7.4.2 播放视频实战:VideoPlayer / 123
7.5 本章小结 / 126
第8章 文件和数据库 / 127
8.1 文件系统API / 127
8.1.1 Android文件系统和程序目录结构 / 127
8.1.2 常用的文件操作 / 132
8.1.3 用异步方式操作文件 / 134
8.2 SQL数据库 / 136
8.2.1 SQLite简介 / 136
8.2.2 连接数据库 / 137
8.2.3 创建表 / 138
8.2.4 添加、查询、更新和删除 / 141
8.2.5 数据库实战:使用查询参数重用SQLStatement对象 / 146
8.3 本章小结 / 149
第9章 网络通信 / 150
9.1 网络通信知识简介 / 150
9.1.1 网络通信API / 150
9.1.2 AIR的安全机制 / 153
9.2 检测网络状态 / 154
9.3 Socket实战:开发即时聊天工具 / 157
9.3.1 Socket通信流程 / 157
9.3.2 在桌面建立服务器 / 158
9.3.3 构建简单的聊天服务器 / 160
9.3.4 制作聊天客户端 / 167
9.4 强大的P2P功能 / 173
9.4.1 P2P通信模型 / 173
9.4.2 P2P开发实战:视频直播 / 174
9.5 本章小结 / 179
第10章 调试和发布 / 180
10.1 调试程序 / 180
10.1.1 使用ADL在桌面上调试程序 / 180
10.1.2 远程连接Flash调试器 / 183
10.1.3 使用Android SDK的DDMS工具 / 186
10.2 发布程序前的准备工作 / 188
10.2.1 设置程序的基本属性 / 188
10.2.2 管理程序的版本号 / 189
10.2.3 针对Android设备的设置 / 190
10.3 发布APK文件 / 191
10.4 将程序发布到应用商店 / 192
10.4.1 发布到Google Play商店 / 192
10.4.2 发布到安卓市场 / 195
10.5 本章小结 / 196
第三篇 进阶篇
第11章 针对移动设备的程序设计 / 198
11.1 设计界面 / 198
11.1.1 自动适应不同型号的屏幕 / 198
11.1.2 友好的用户交互 / 202
11.1.3 有效的界面布局 / 204
11.2 管理程序的状态 / 207
11.2.1 监测程序状态 / 208
11.2.2 实战:自动保存播放位置 / 211
11.3 跨平台开发 / 215
11.3.1 跨平台开发时的注意事项 / 215
11.3.2 技巧:使用编译参数兼容多平台 / 217
11.4 本章小结 / 219
第12章 键盘交互 / 220
12.1 Android设备上的键盘交互 / 220
12.1.1 Android设备上的实体按键 / 220
12.1.2 监听键盘事件 / 222
12.2 实战:使用Menu键模拟Android的菜单和行为 / 224
12.2.1 创建菜单对象 / 224
12.2.2 关联按键动作 / 228
12.3 Back键的用法 / 232
12.3.1 实战:使用Back键进行页面导航 / 233
12.3.2 通过Back键自动关闭程序 / 238
12.4 本章小结 / 239
第13章 性能优化 / 240
13.1 了解ActionScript 3.0的运行机制 / 240
13.1.1 ActionScript 3.0的特点 / 240
13.1.2 关于垃圾回收机制 / 243
13.2 从编程细节处看优化 / 246
13.2.1 使用最合适的数据类型和API / 246
13.2.2 资源的回收和释放 / 249
13.2.3 实例:一段代码的优化历程 / 251
13.3 常用工具和代码库 / 253
13.3.1 使用FlexPMD优化代码 / 254
13.3.2 Flash Builder的性能调试工具Profiler / 255
13.3.3 第三方调试工具Monster Debugger / 258
13.4 优化技巧实战案例 / 260
13.4.1 运用render事件减少代码执行 / 260
13.4.2 构建对象池重用对象:动态小球实例 / 265
13.4.3 异步事件的使用:搜索SD卡 / 270
13.5 本章小结 / 274
第四篇 实战篇
第14章 迷宫游戏的准备阶段 / 276
14.1 需求分析 / 276
14.1.1 游戏规则 / 276
14.1.2 游戏功能的实现 / 277
14.2 技术要点分析 / 277
14.2.1 如何实现物理效果 / 278
14.2.2 如何生成地图 / 279
14.3 Box2D物理引擎 / 279
14.3.1 Box2D中的基本概念 / 280
14.3.2 示例程序HelloBox2D / 280
14.3.3 实现碰撞效果 / 285
14.4 迷宫地图算法 / 287
14.4.1 问题分析 / 287
14.4.2 回溯法详解 / 288
14.4.3 代码实现 / 290
14.5 本章小结 / 296
第15章 迷宫游戏的实现 / 297
15.1 制作迷宫地图 / 297
15.1.1 绘制带有物理属性的地图 / 297
15.1.2 添加随机障碍物 / 300
15.2 加入可“行走”的角色 / 302
15.2.1 创建小球 / 302
15.2.2 使用加速计控制小球的移动 / 303
15.2.3 碰撞检测 / 304
15.3 游戏状态控制 / 306
15.3.1 自动暂停和恢复 / 306
15.3.2 关卡设置 / 308
15.4 游戏代码分析 / 309
15.4.1 程序中的类 / 309
15.4.2 主程序Game类详解 / 310
15.5 本章小结 / 320
第五篇 高级篇
第16章 AIR本地扩展 / 322
16.1 ANE的特点 / 322
16.2 一个简单的本地扩展 / 323
16.2.1 搭建开发环境 / 323
16.2.2 编写本地代码 / 324
16.2.3 编写ActionScript代码 / 329
16.2.4 打包和发布 / 332
16.2.5 在程序中使用本地扩展 / 334
16.3 ANE进阶实战技术 / 337
16.3.1 Intent机制:分享信息到社交网站 / 337
16.3.2 在顶部状态栏显示系统通知 / 342
16.4 本章小结 / 347