编辑推荐
《AIR Android应用开发实战》海报:
内容简介
《AIR Android应用开发实战》由资深Adobe技术专家兼资深Android应用开发工程师亲自执笔,既系统全面地讲解了如何利用Adobe AIR技术开发Android应用,又细致深入地讲解了如何将已有的基于PC的AIR应用移植到Android设备上。不仅包含大量实践指导意义极强的实战案例,还包括大量建议和优佳实践,是系统学习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、ActionScript 3、Flex、FMS等;有多年Flash相关技术开发经验,开发了大量Flash/Flex项目,是开源项目as3-pdf reader的创建者,并维护至今,在Adobe技术社区有较高的知名度和影响力。国内Android应用开发的先驱者之一,对Android应用开发也有非常深入的研究,尤其精通AIR Android应用的开发。他对PHP和Python相关的技术也有一定的研究。
此外,他还是一位颇具经验的技术撰稿人和技术作家,曾经在社区和《程序员》杂志上发表了大量技术文章,著有《Flex第一步》。
内页插图
精彩书评
本书算得上是AIR移动开发方面的优秀之作,全面而深入地讲解了如何使用AIR技术开发Android应用。令人印象特别深刻的是,本书在多点触控与重力感应等移动开发的关键技术上有深入的探索。本书是不同水平层次的AIR移动开发者都值得阅读并研究的实战教材。
——Flash开发者大会
Adobe的AIR移动开发技术是未来移动开发跨平台技术的主流之一。十多年来Flash游戏与应用开发的成熟奠定了它的基础,而Flash通过AIR来开发移动端应用的便利性和实用性,已经受到了业界的青睐。本书的出版可谓是顺应时代的要求,书中总结了作者多年来在AIR应用开发领域的经验,希望广大Flash开发者能从中受益!
——天地会全球RIA开发者社区/Adobe官方认证社区冠军
AIR移动开发技术在Adobe未来10年的发展战略中有非常重要的地位,关乎到Adobe在移动开发领域的地位和话语权,所以Adobe-直在大力投入。AIR移动开发技术是Flash开发者的福音,它不仅能让Flash开发者利用原有的知识迅速开发出基于各种移动平台的应用,而且还能将已经存在于PC桌面的AIR应用便利地移植到各种设备上。Android应用开发目前在移动开发领域如火如荼,本书专门讲解了如何利用AIR移动开发技术开发基于该平台的应用。本书内容非常全面,各种理论、开发方法和技巧均覆盖到了,适合系统学习;且本书实战性也-非常突出,包含大量案例,可操作很强。此外,本书内容也不乏深度,对性能优化等高级内容也进行了探讨,而且还包括一些优佳实践。
——艾睿论坛专注Flex开发
随着ANE、Alchemy的出现,Native的特性和运行性能都得到很大的提升。借助AIR跨平台和高效开发的优势,AIR已完全具备开发商业产品的能力。本书针对AIR for Android开发,详细地介绍了手势、加速计、地理定位等移动特性开发细节,很适合AIR for Android初学者系统学习。在本书指导下,读者可以快速学习AIR for Android开发的核心知识,省去走弯路的时间。
——李佳宸Adobe专家组成员、瑞研社区创始人、Flash开发者大会组织者、AIR移动研究小组委员
2007年通过Flex与彦林相识,3年后,在Flash开发者大会上再次和他相遇,5年后的今天,彦林带给我惊喜,他将自己在AIR和Android应用开放方面的经验系统总结了出来并集结成书。迫不及待地看了样章,简明扼要是给我的第一印象。插图不多,但恰到好处。说到关键点时,给出了带有注释的示例代码,言简意骇,能让读者始终保持清晰的思路。对于想开发移动AIR的同学来说,本书无疑是一本不错的教材。希望能借着此类书籍,让国内的移动AIR开发者队伍能更快地发展壮大,让Flash技术更快地渗透到移动互联网。
——Y.Boy资深Flash技术专家就职于腾讯
目录
前言
第一篇 准备篇
第1章AIR Android开发简介
1.1 开发之前需要了解的信息
1.1.1 AIR Android开发的可行性
1.1.2 开发过程中常见的问题
1.1.3 优势和局限性
1.2 搭建开发环境
1.2.1 安装Android SDK
1.2.2 使用Flash Professional CS5
1.2.3 使用Flash Builder 4.5
1.2.4 构建开源的开发环境
1.3 实战:一个简单的AIR项目
1.4 本章小结
第2章 第一个AIR Android程序:翻转黑白棋
2.1 游戏的设计思路
2.2 像往常一样编写ActionScript代码
2.2.1 创建棋子类Grid
2.2.2 编写主类Main
2.3 设置程序属性
2.3.1 了解应用程序描述文件
2.3.3 设置访问权限
2.4 打包APK文件
2.5 安装和运行程序
2.5.1 使用模拟器运行程序
2.5.2 在真机上运行程序
2.6 本章小结
第二篇 基础篇
第3章 处理用户交互
3.1 关于多点触摸
3.2 处理触摸事件
3.2.1 使用TouchEvent类/
3.2.2 触摸事件与鼠标事件的区别
3.3 处理手势动作
3.3.1 放大与缩小手势
3.3.2 旋转手势
3.3.3 Swipe手势
3.4 本章小结
第4章 加速计
4.1 Accelerometer API用法
4.2 重力小球实例
4.2.1 如何模拟重力场
4.2.2 绘制小球
4.2.3 让小球总是掉到屏幕下方
4.2.4 为小球设置围墙
……
第三篇 进阶篇
第四篇 实战篇
第五篇 高级篇
前言/序言
《Android应用开发实战:从入门到精通》 第一章:Android开发环境搭建与初识 本章将带领您一步步完成Android开发所需的环境搭建,包括Java JDK的安装与配置、Android Studio的下载与安装,以及Android SDK的设置。我们将详细介绍Android Studio的界面布局、常用视图以及项目创建的基本流程。您将学习如何创建一个“Hello, World!”应用,并通过模拟器或真机运行,初步感受Android应用的生命周期。同时,本章还将深入讲解Android项目的基本结构,包括AndroidManifest.xml文件、res资源目录、java源文件目录等,让您对Android项目的构成有一个清晰的认识。 第二章:Android四大组件详解 Android应用的核心功能由四大组件驱动:Activity、Service、Broadcast Receiver和Content Provider。本章将对这四大组件进行深入剖析。 Activity: 您将学习Activity的生命周期(onCreate, onStart, onResume, onPause, onStop, onDestroy),理解Activity之间的跳转与传值(Intent),并掌握Activity栈的管理机制。我们将探讨Activity的各种启动模式,以及如何在不同的场景下有效地使用它们。此外,还会介绍Fragment,作为Activity的轻量级补充,用于构建灵活的用户界面。 Service: Service是用于在后台执行长时间运行操作或提供其他应用无法直接访问的功能的组件。本章将讲解Service的创建、启动(startService, bindService)与停止,以及Service的生命周期。您将学会如何创建前台Service,实现用户可见的后台任务,并通过AIDL(Android Interface Definition Language)实现进程间通信。 Broadcast Receiver: Broadcast Receiver是用于接收系统广播和自定义广播消息的组件。您将学习如何注册广播接收器(静态注册和动态注册),如何发送广播(sendBroadcast),以及如何响应各种系统事件,例如网络状态变化、电池电量变化等。 Content Provider: Content Provider用于管理共享数据集,并允许其他应用程序访问您的数据。本章将讲解Content Provider的基本概念,如何创建自己的Content Provider来暴露数据,以及如何查询、插入、更新和删除数据。您还将了解Android系统提供的内置Content Provider,例如Contacts Provider和Media Provider。 第三章:用户界面(UI)设计与交互 一个优秀的应用离不开友好的用户界面。本章将全面介绍Android的UI设计。 XML布局: 您将学习使用XML来定义用户界面的结构和外观。我们将深入讲解各种常用布局容器,如LinearLayout、RelativeLayout、FrameLayout、ConstraintLayout,并介绍如何通过它们来组织UI元素。 常用UI控件: 本章将详细介绍各种UI控件的使用,包括TextView、EditText、Button、ImageView、CheckBox、RadioButton、Spinner、ListView、GridView、RecyclerView等。您将学习如何设置控件的属性,如文本、颜色、图片、大小、对齐方式等,并掌握如何通过代码动态修改UI元素。 事件处理: 用户与应用程序的交互通过事件处理来实现。您将学习如何为控件设置点击监听器、文本改变监听器等,并通过回调方法来响应用户的操作。 Material Design: 本章还将引入Google的Material Design设计规范,学习如何为您的应用设计出更具现代感、更一致性的UI。您将了解Material Design中的一些核心概念,如CardView、FloatingActionButton、Snackbar、Toolbar等,并学习如何将其应用到您的项目中。 第四章:数据存储与管理 应用程序需要有效地存储和管理数据。本章将探讨Android中多种数据存储方案。 SharedPreferences: 用于存储少量键值对数据,例如用户偏好设置。您将学习如何读写SharedPreferences数据,并了解其使用场景。 SQLite数据库: 对于结构化数据,SQLite是Android内置的强大关系型数据库。本章将详细讲解SQLiteOpenHelper的使用,如何创建数据库表、执行SQL语句(查询、插入、更新、删除),并介绍SQLiteDatabase对象的常用方法。您还将学习如何使用Room Persistence Library,一个Android Jetpack组件,简化SQLite数据库的访问。 文件存储: 您将学习如何在内部存储和外部存储中读写文件,理解不同存储方式的权限要求和安全性。 Content Provider(进阶): 在本章中,我们将回顾Content Provider,并深入讲解如何利用它来实现应用之间的数据共享和同步。 第五章:网络通信与数据获取 现代Android应用高度依赖网络通信来获取和同步数据。本章将带您进入网络编程的世界。 HTTP协议基础: 简要介绍HTTP协议的工作原理,包括请求方法(GET, POST等)和响应码。 网络请求库: 我们将重点介绍并实践使用Volley和Retrofit这两个强大的第三方网络请求库。您将学习如何使用它们来发送HTTP请求,处理JSON、XML等格式的数据,以及处理网络错误和异常。 JSON与XML解析: 学习使用Gson、Jackson等库来解析JSON数据,以及使用DOM、SAX等方式解析XML数据,将网络获取的数据转化为Java对象。 异步处理: 理解网络请求的异步性,并学习如何使用AsyncTask、Handler、RxJava等技术来在后台线程执行网络操作,避免阻塞UI线程。 网络权限管理: 学习如何在AndroidManifest.xml文件中声明网络访问权限。 第六章:后台任务与服务进阶 在本章中,我们将进一步深入探讨后台任务和服务的相关内容,以应对更复杂的应用场景。 WorkManager: Android Jetpack推出的WorkManager是处理可延迟、可保证执行的后台任务的首选方案。您将学习如何使用WorkManager来安排周期性任务、一次性任务,并处理任务的约束条件(如网络可用、设备充电等)。 JobScheduler: 了解JobScheduler的工作原理,以及它与WorkManager的区别和联系。 后台服务优化: 讨论如何优化后台服务的性能,减少电池消耗,例如使用WorkManager替代传统的Service来实现后台任务。 进程间通信(IPC)进阶: 除了AIDL,本章还将介绍其他IPC机制,如Messenger,并分析它们在不同场景下的适用性。 第七章:多媒体处理 本章将指导您如何为应用添加多媒体功能。 图片处理: 学习使用ImageView展示图片,使用Glide或Picasso等图片加载库来高效加载和缓存网络图片。您还将学习如何进行图片的缩放、裁剪和旋转。 音频播放: 使用MediaPlayer类来播放音频文件,包括本地音频和网络流媒体。学习如何控制音频的播放、暂停、停止,以及处理播放状态。 视频播放: 使用VideoView或TextureView来播放视频文件,并学习如何实现视频的播放控制。 相机API: 学习如何调用设备的相机来拍照或录制视频,并将捕获的媒体文件保存到设备中。 第八章:传感器与定位服务 本章将带领您探索Android设备丰富的传感器功能以及如何获取用户的位置信息。 常用传感器: 学习如何访问和使用设备内置的传感器,例如加速度计、陀螺郎、光线传感器、距离传感器等,并理解它们的工作原理。 定位服务: 学习使用LocationManager和FusedLocationProvider API来获取设备的GPS、Wi-Fi或基站定位信息。您将了解不同定位模式的区别,以及如何处理定位权限。 地图集成: 学习如何将Google Maps集成到您的应用中,显示地图、标记位置、绘制路线等。 第九章:通知与消息推送 通知是Android应用与用户沟通的重要方式。本章将详细讲解通知的创建和管理,并引入消息推送的概念。 通知的创建与显示: 学习如何创建不同类型的通知,包括基本通知、带大文本通知、带图片的通知等。 通知渠道(Notification Channels): 理解Android O(API 26)及以上版本中通知渠道的重要性,并学习如何为通知设置不同的优先级和行为。 通知操作: 为通知添加可点击的操作按钮,让用户可以直接在通知中执行特定任务。 消息推送(Push Notification): 介绍消息推送的基本原理,以及如何集成Firebase Cloud Messaging(FCM)等服务来实现跨平台的消息推送功能。 第十章:应用打包、发布与优化 在应用开发完成后,您需要将其打包并发布到应用商店。本章将涵盖这方面的内容。 应用签名: 理解应用签名的重要性,学习如何生成签名密钥并为应用签名。 APK与AAB打包: 学习如何生成APK(Android Package)和AAB(Android App Bundle)安装包。 应用商店发布流程: 介绍Google Play Store等应用商店的发布流程,包括创建开发者账号、填写应用信息、上传安装包、设置价格和发布区域等。 性能优化: 探讨提升应用性能的常见方法,包括内存优化、CPU优化、UI渲染优化、减少电量消耗等。 混淆与ProGuard: 学习使用ProGuard或R8对代码进行混淆和优化,减小APK体积并提高安全性。 第十一章:Android Jetpack组件深入 Android Jetpack是Google提供的一套库、工具和指导,旨在帮助开发者更轻松地开发出高质量的Android应用。在本章中,我们将深入探讨Jetpack的几个核心组件。 ViewModel: 学习如何使用ViewModel来管理UI相关的数据,并在配置更改(如屏幕旋转)时保留数据。 LiveData: 理解LiveData作为可观察的数据持有者的优势,以及它如何与ViewModel结合使用,实现高效的UI数据更新。 Navigation Component: 学习使用Navigation Component来简化Fragment之间的导航,构建流畅的用户体验。 Room Persistence Library(回顾与进阶): 再次深入讲解Room,包括其注解的使用、DAO(Data Access Object)的设计,以及如何处理数据库迁移。 Paging Library: 学习如何使用Paging Library来高效地加载和显示大量列表数据,解决内存溢出问题。 第十二章:进阶主题与最佳实践 本章将触及一些更高级的Android开发主题,并总结一些实用的最佳实践。 依赖注入(Dependency Injection): 介绍依赖注入的概念,并学习如何使用Hilt或Dagger等依赖注入框架来管理应用的类依赖,提高代码的可测试性和可维护性。 单元测试与集成测试: 学习如何为您的Android应用编写单元测试和集成测试,使用JUnit和Espresso等工具来确保代码质量。 Kotlin在Android开发中的应用: 随着Kotlin成为Android官方推荐的开发语言,本章将简要介绍Kotlin的特性,以及如何将其与Java协同使用,或纯Kotlin开发。 性能监控与调试工具: 介绍Android Studio中的性能分析工具,如CPU Profiler、Memory Profiler、Network Profiler,帮助您诊断和解决性能问题。 安全编码实践: 讨论Android应用开发中的安全问题,如数据加密、防止SQL注入、安全地处理敏感信息等。 通过本书的学习,您将能够独立开发出功能丰富、性能优越、用户体验良好的Android应用程序,并为更深入的Android开发打下坚实的基础。