基本信息
- 原书名:Android Programming: Pushing the Limits
- 原出版社: Wiley
编辑推荐
Android开发进阶首选
深入挖掘Android高级特性与开发技巧
挑战编程极限,打造非凡应用
内容简介
计算机书籍
《Android编程实战》针对如火如荼的Android 市场,深入挖掘Android 平台的功能,帮助开发者构建更高级的应用程序。书中内容包括三大部分。第一部分介绍了Android 开发者可用的工具及用于Android 开发的Java 编程语言。第二部分介绍了核心Android 组件及其最优使用方式。第三部分主要介绍一些最新技术,包括Android 平台及可供Android 设备使用的服务。
《Android编程实战》适合具有Android 编程经验并想进一步学习高级API 和技巧的Android 开发者,也适合使用Java 语言编程并且希望学习一门新语言的程序员,以及所有喜欢测试新特性、乐于尝试新事物的读者。
你是否从事Android操作系统开发,会创建简单的Android应用,但想进一步提升自己的开发技巧?你是否想深入挖掘Android操作系统的特性与功能,挑战现有开发水准?你是否正在想方设法创建高级、直观、创新的Android应用?毫无疑问,这本书适合你。
《Android编程实战》从自定义视图、多点触摸手势讲起,到集成在线Web服务,进一步扩展到探索地理围栏和活动识别等新技术。作为一名经验丰富的Android工程师,Erik Hellman通过本书深入剖析了一些专业技巧、诀窍、容易绊倒开发者的陷阱,以及一些鲜为人知的技术:
优化组件,以实现尽可能流畅的用户体验
创建自定义视图
全面理解Android SDK
掌握Android Studio和Gradle
使用Android音频、视频和图形API
文本转语音以及语音识别项目
作译者
Factor10咨询公司资深移动开发顾问,曾任索尼公司Android团队首席架构师,主导Xperia系列产品开发;精通移动应用、Web技术、云计算和三维图形,定期在DroidCon、JFokus、JavaOne和其他专业开发人员大会上发表演讲。关于Erik的更多信息,可访问他的博客http://blog.hellsoft.se。
丁志虎
美团移动Android工程师。主要关注Android应用开发的各种技术,爱运动,爱coding,热衷于开源社区。
武海峰
美团移动应用和服务Gatekeeper。主要关注移动互联网应用和安全,热衷于开源软件和GNU/Linux。目前正在组建一支全栈QA团队。
目录
第一部分 构建更好的基础
第1章 完善开发环境 2
1.1 可供选择的操作系统 2
1.2 Android SDK进阶 2
1.2.1 adb工具 3
1.2.2 用Monkey对应用UI做压力测试 5
1.2.3 在Android上使用Gradle构建系统 6
1.2.4 用ProGuard优化和混淆代码 9
1.3 Android库项目以及第三方库 9
1.3.1 使用JAR库 9
1.3.2 创建库项目 10
1.4 版本控制和源代码管理 11
1.5 熟练使用IDE 13
1.5.1 调试Android应用 14
1.5.2 使用lint做静态代码分析 15
1.5.3 重构代码 18
1.6 Android设备上的Developer选项 20
1.7 小结 22
1.8 延伸阅读 22
前言
正在阅读本书的读者一定很了解Android平台、智能手机和应用程序开发,也一定知道Android设备在过去几年里的飞速发展和这个平台对开发者的无限潜力。本书可以列出关于Android的一些数字和统计信息,但是这样做意义并不大,因为这些数据在读者阅读本书时很可能已然无效。显然,Android市场发展如火如荼,而且在接下来几年内,这种发展势头必将持续下去。
这种趋势简直就是Android开发者的福音,希冀成为Android开发专家的开发者们前景一片光明。移动互联网行业对专业Android应用程序开发人员的需求数量日益增长,与此同时,对于开发人员的技术要求也越来越高,因为用户需求的功能和新技术所提供的可能性要求开发者必须高瞻远瞩。
尽管谷歌为开发者提供了一套伟大的编程工具和API,开发者仍需在Android上不断创新。这就是本书的目的:进一步发挥Android平台的功能,构建更高级的应用程序。
目标读者
本书适合以下读者:具有Android编程经验并想进一步学习更高级的API和技巧;平时使用Java语言编程,但也希望学习一门新的语言;敢于尝试新事物,不管是新的IDE还是全新的API;喜欢测试所有新特性并且在刚开始遇到失败时不会气馁。
本书并非是关于Android开发的入门图书,而是针对具有Android应用程序开发经验的读者。读者需要了解Android的基本知识,能使用Activity、Service、BroadcastReceiver和ContentProvider这些类创建应用程序。读者需要熟悉有关应用程序清单的核心概念以及不同类型的应用程序资源。如果读者能够在几分钟内构建一个简单的Android应用程序,那么将可以很好地理解本书内容。
本书的目的是带领读者挑战极限。每一章都试图对开发者通常所了解以及日常使用的知识加以延伸。尽管读者可能对书中的某些章节很熟悉,但本书会对这些章节展开更深入的讨论。所以,Android开发者们大可放心,本书绝对会提供新东西。
本书内容
Android平台发展速度惊人。即使是在本书撰写期间,也不得不改变原先撰写计划,因为谷歌不断为Android开发者推出新的API、工具和技术。书中许多示例需要较新的Android版本,本书假定读者熟悉不同的API级别,知道每个用例需要使用哪个Android版本。
本书主要讨论对于Android开发者有价值的技术,而某些技术并未涵盖在内,是因为它们没有“超越极限”,或者说对本书的实际价值不大。因此,这本书不是有关Android应用程序开发的方法论,也不是一一罗列所有特性,而是在每章都深入探讨相关的技术细节。本书也不会提供完整的应用程序,而是提供大量代码供开发者改进自己的应用。
由于经验不尽相同,开发者可能会遇到不太熟悉的技术。例如,第12章介绍了安全话题,需要读者对数据加密、私钥/公钥有基本的了解;第18章涉及USB通信、蓝牙低功耗和Wi-Fi Direct技术。但读者不必担心,涉及较陌生技术时,本书会提供让读者找到更多相关信息的资源。每章都有“延伸阅读”部分,列出了书籍或网站等资源,以供读者进一步了解相关主题。
本书结构
本书包括三大部分。第一部分介绍了Android开发者可用的工具及用于Android开发的Java编程语言。第二部分介绍了核心Android组件及其最优使用方式。第三部分主要介绍一些最新和最先进的技术,包括Android平台及可供Android设备使用的服务。
第一部分:构建更好的基础
第1章:完善开发环境介绍Android开发工具。这一章介绍用于Android开发的新的IDE——
Android Studio,简单介绍目前标准的Android应用程序构建系统Gradle。
第2章:在Android上编写高效的Java代码侧重于Java编程语言和Android的相关细节。这一章讨论一些能够减少内存负载和Dalvik垃圾回收器负载的技巧,并用示例展现各种多线程实现的优缺点。
第二部分:充分利用组件
第3章:组件、清单及资源概述了各种组件,描述了应用程序清单中较少用到的方面,给出了Android资源高级用法的示例。
媒体评论
——美团移动Android负责人陈红兵
“本人从事移动开发多年,阅读过大量移动开发方面的书。这本书确实不错,目标读者清晰,技术实用,包括但不限于大量高级技巧、诀窍、新技术。阅读本书的过程一如资深移动开发工程师亲临现场指导,绝对让你受益匪浅!”
—— MacIOSAndroid
“地球人已经阻止不了我推荐这本书的步伐了,中高级Android开发人员必备经典!”
——Big Will
书摘
开发者选择的工具取决于具体的开发项目。编写一个HTML5应用程序和用Java开发一个服务器端应用对开发环境的要求是不同的。有些平台提供了更多的选择,就像本章接下来描述的,开发Android应用程序可以选择多种Android开发环境。
本章首先会介绍Android SDK的一些高级特性,如何在日常开发中使用它们,以及它们是如何帮助开发者编写高质量的应用程序的。接下来会介绍如何用第三方库来组织项目以达到最大的代码复用。通过把Gerrit代码审查工具和Git集成在一起,开发者会对版本控制有一个新的认识。开发者大部分时间都在和IDE打交道。虽然谷歌还在支持Eclipse IDE,但他们正推动开发者在所有的Android项目中使用全新的Android Studio IDE。所以本章还会介绍Android Studio以及新的Gradle构建系统。最后,会介绍Android设备的开发者选项。
1.1可供选择的操作系统
这可能是开发者不必担心的一个问题。通常会有两种情况,要么开发者自己选择操作系统,要么服从雇主的IT政策要求。对大部分Android开发人员来说,任何官方支持的操作系统都能很好地工作。然而,某些情况下选择合适的操作系统还是至关重要的。
谷歌支持在Windows、Linux、OS X上开发Android应用。虽然Android SDK支持Windows,但在开发一些高级特性时,开发者可能会遇到问题,尤其是在编写本地应用以及构建定制的ROM时。最好的选择是Linux或者OS X。如果可能,尽量选一个作为主操作系统,这样遇到的问题就会少得多。另一个尽量不要在Windows上开发的原因是,开发者需要为所有的Android设备安装USB驱动程序。
1.2Android SDK进阶
操作系统和所需(推荐)的工具都准备好之后,接下来我们重点关注的就是Android SDK了。开发者可在http://developer.android.com/sdk下载适合操作系统的SDK以及最新的安装说明。Android Studio自带SDK,但如果你喜欢独立的版本,可另行下载。
确保SDK始终是最新的,还要为我们开发的所有Android版本下载API。更新Android SDK最简单的方法是在提示符下运行如下更新命令:
$ android update sdk --no-ui
在Android SDK文件夹内有一些子文件夹。从工具的角度看,只有platform-tools和tools文件夹是我们关心的。本书会介绍其中的一些工具并解释如何使用它们,从adb(Android Debug Bridge)开始。如果开发者经常在命令行中使用这些工具,建议把SDK的文件夹路径添加到PATH环境变量中。
开发者可在http:// developer.android.com/tools/help/index.html上找到大部分Android SDK工具的官方文档。
1.2.1adb工具
adb位于platform-tools文件夹,开发者用它在设备上安装启动应用。在Android SDK的早期版本中,adb还在tools文件夹内。除了能在IDE中安装、启动、调试应用外,开发者还可手动用adb在Android设备上做一些底层的调试操作。在终端(Linux或者Mac OS X)或者命令提示符(Windows)键入adb help all,就会列出所有可用的命令。
一些常用的adb命令如下:
adb devices,列出所有连接的Android设备和虚拟机;
adb push (local) (remote),将电脑上的文件复制到设备(通常存到SD卡);
adb pull (remote) (local),将设备上的文件复制到电脑。
1. adb和多设备
如果要在两台或者多台设备上同时开发和调试应用,比如多人游戏或者即时通信应用,需要将–s (serial number)作为adb的第一个参数来识别开发者想要的设备。adb devices命令会列出已连接设备的序列号。下面的示例可在特定设备上运行logcat命令: