具体描述
本书由资深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
· · · · · · (收起)
读后感
读完之后感觉就是两个字:好书!这是一本非常偏重实战的书,但理论之处也是讲解的非常透彻,因为这本书是讲移动开发的,所有内容基本都是围绕“移动开发”这个主题,现在移动这个领域也是非常火热,如果一个Flash开发者想进入移动开发领域,那么我感觉这本书会是非常好的教材(...
读完之后感觉就是两个字:好书!这是一本非常偏重实战的书,但理论之处也是讲解的非常透彻,因为这本书是讲移动开发的,所有内容基本都是围绕“移动开发”这个主题,现在移动这个领域也是非常火热,如果一个Flash开发者想进入移动开发领域,那么我感觉这本书会是非常好的教材(...
读完之后感觉就是两个字:好书!这是一本非常偏重实战的书,但理论之处也是讲解的非常透彻,因为这本书是讲移动开发的,所有内容基本都是围绕“移动开发”这个主题,现在移动这个领域也是非常火热,如果一个Flash开发者想进入移动开发领域,那么我感觉这本书会是非常好的教材(...
读完之后感觉就是两个字:好书!这是一本非常偏重实战的书,但理论之处也是讲解的非常透彻,因为这本书是讲移动开发的,所有内容基本都是围绕“移动开发”这个主题,现在移动这个领域也是非常火热,如果一个Flash开发者想进入移动开发领域,那么我感觉这本书会是非常好的教材(...
读完之后感觉就是两个字:好书!这是一本非常偏重实战的书,但理论之处也是讲解的非常透彻,因为这本书是讲移动开发的,所有内容基本都是围绕“移动开发”这个主题,现在移动这个领域也是非常火热,如果一个Flash开发者想进入移动开发领域,那么我感觉这本书会是非常好的教材(...
用户评价
这本书给我最大的收获在于,它成功地培养了一种“系统性思考”的能力,而不仅仅是教会了我如何使用某个工具。作者似乎非常注重“为什么”而不是仅仅停留在“怎么做”的层面。例如,在讲解数据存储方案时,它没有直接推荐Room,而是先对比了SQLite、SharedPreferences以及File I/O在不同读写场景下的性能、安全性和原子性,让读者明白选择哪个工具背后的权衡利弊。这种深入到决策层面的讲解,极大地提升了读者的架构思维高度。它迫使我跳出只关注单个功能实现的狭隘视角,开始从整个应用的用户体验、维护成本和未来扩展性的角度去设计每一个模块。这种思维的跃迁,是我在阅读其他零散技术博客和文档时很难获得的。可以说,这本书更像是一份资深架构师的心得总结,它不仅教会了如何高效地“编码”,更教会了如何“设计”一个成功的Android应用。
这本书的实战性强到让人有点“汗颜”,它不是那种停留在理论层面夸夸其谈的“百科全书”,而是活生生的、可以立即投入生产环境的代码参考手册。它覆盖的技术栈非常前沿,尤其是在UI架构方面,对Jetpack Compose的介绍并不是敷衍了事地罗列API,而是深入探讨了State管理、Recomposition的优化策略,以及如何优雅地将Compose与传统的View体系进行混合开发。这种与时俱进的速度和深度是相当少见的。我尤其喜欢其中关于“模块化与组件化”章节的论述,作者提供了一套非常成熟的实践方案,从项目初始化、依赖管理到跨模块通信,都给出了清晰的指导方针和可复用的代码骨架。这对于希望将个人项目升级为团队协作标准或者重构遗留代码的开发者来说,简直是无价之宝。读完这些章节,我感觉自己仿佛经历了一次企业级项目的完整生命周期,那些在实际工作中感到棘手的问题,在这里都能找到对应且成熟的解决方案。
这本书的封面设计得相当吸引人,那种深邃的蓝色调配上充满科技感的字体,一眼就能让人联想到Android开发的深度和广度。我是在寻找一本能把我从基础概念带到实际项目落地之间的桥梁时发现它的。市面上很多教程要么停留在“Hello World”的层面,要么就是过度堆砌API文档,让人望而却步。这本书的结构安排得很巧妙,它不是简单地罗列知识点,而是以一种故事线的方式推进,仿佛带着读者一步步深入到一个真实的开发场景中去。特别是对于初学者来说,它并没有急于展示那些炫酷的最新特性,而是花了大量的篇幅去讲解Android四大组件的生命周期和相互协作的底层逻辑,这一点非常关键。我记得其中一个章节详细解析了Activity启动过程中的内存管理和线程调度,那部分内容简直是醍醐灌顶,让我过去在处理应用卡顿时那些模糊的认知一下子清晰起来。作者在代码示例的选择上也极为用心,不像有些书籍那样为了演示功能而生搬硬造场景,这里的例子都是贴近实际工作场景中的痛点和需求,比如如何高效地处理网络请求、如何实现流畅的RecyclerView滑动优化,这些都是日常开发中绕不开的坎。读完这部分内容后,我感觉自己对构建健壮、高性能的移动应用有了一个全新的认知框架。
从排版和视觉呈现来看,这本书确实做到了“赏心悦目”。很多技术书籍的PDF版或者印刷版,代码块和文字混排得一塌糊涂,别说阅读了,光是复制粘贴都要费半天劲。这本书在这方面做得非常专业,代码块的字体选择、行间距、高亮样式都经过了精心设计,保证了长时间阅读的舒适度。更难能可贵的是,对于那些涉及到系统底层原理的复杂流程图,作者使用了清晰的层次结构和准确的箭头指向,使得原本复杂的数据流向一目了然。我记得有一张关于Android内存回收机制的图示,清晰地展现了GC触发的条件和不同内存区域的划分,即便是第一次接触这个主题的读者也能迅速抓住重点。这种对细节的关注,体现了编者对技术传播的严谨态度。在我看来,一本优秀的技术书,不仅内容要硬核,其载体本身也应该是一种优质的用户体验,这本书无疑在这方面做得非常出色,让人愿意一遍遍翻阅和查找。
这本书的文字风格非常平实、直接,读起来几乎没有阅读障碍,不像某些技术书籍那样充斥着晦涩的术语和拗口的句子。它更像是经验丰富的同事在手把手地指导你解决问题,语气中带着一种沉稳的自信。我特别欣赏作者在讲解复杂概念时所采用的比喻和类比,它们往往能瞬间击中要害,让那些原本抽象难懂的架构思想变得具体化、可视化。例如,在讲解RxJava或Kotlin Coroutines进行异步操作管理时,作者并没有直接抛出复杂的调度器概念,而是先通过一个日常生活中等待快递的比喻,把观察者模式和背压(Backpressure)的原理讲得明明白白。这种“先搭场景,后讲技术”的处理方式,极大地降低了新技术的入门门槛。此外,书中对于错误处理和异常捕获的讲解也极其到位,它不仅仅告诉你“应该try-catch”,而是深入分析了不同场景下应该选择哪种异常处理策略,以及如何利用Google官方推荐的工具链来捕获和分析线上崩溃报告。这让我在阅读时,总有一种在做实战演练的感觉,而不是单纯地接收信息轰炸。
这是一本非常偏重实战的书,但理论之处也是讲解的非常透彻,因为这本书是讲移动开发的,所有内容基本都是围绕“移动开发”这个主题,现在移动这个领域也是非常火热,如果一个Flash开发者想进入移动开发领域,那么我感觉这本书会是非常好的教材
入门读物,例子很好的阐释了一些mobile开发理念
入门读物,例子很好的阐释了一些mobile开发理念
这是一本非常偏重实战的书,但理论之处也是讲解的非常透彻,因为这本书是讲移动开发的,所有内容基本都是围绕“移动开发”这个主题,现在移动这个领域也是非常火热,如果一个Flash开发者想进入移动开发领域,那么我感觉这本书会是非常好的教材
网上找不到什么air游戏的,发下这一本书,感觉不错,已经提交订单了,等待中