前言
谨以此书献给Android开发者社区里所有的朋友们!
时间很快,距本书第一版出版已经过去3年多时间,在这3年时间里,移动互联网发生了天翻地覆的变化。Android 从最初的移动互联网新秀成长为移动互联网霸主,不仅把Symbian拉下马,还把iPhone(iOS)请下神坛,顺便又把BlackBerry、WebOS等逼上绝路,而Android继续攻城掠地巩固自己的霸主地位。
在这3年时间里,Android开发技术也发生了很多变化,从2009年的1.5版Android SDK到现在的Android SDK 4.x 版,引入了NDK、NFC,规范了UI设计指南,发布针对平板电脑的版本,还有诸如无线充电等新的技术。而Android设备也由第一部 Android G1发展到现在各种各样不少于 500种的Android设备。
种种迹象表明,第一版的内容旧了,在出版社再三督促和读者的期待下,我们完成了本书的第二版,就是现在你拿在手中的这个版本。
本次更新相比本书的第一版来说,内容是完全重新写了一遍,几乎没有用第一版书稿的一段文字。我们重新策划、重新组织、重新编撰、重新审核。除了用最新的 SDK 重写了第一版中大家喜欢的内容外,我们在本版中加入开发进阶内容,也重新挑选了6个真实的应用开发案例。
我们会持续更新和完善这本书,努力做一本帮每一位Android开发者入门的标准教程,也非常乐意看到有越来越多的学校和培训机构采用本书作为其标准Android学习教材。
本书适合
本书适合所有对 Android 技术感兴趣的人,特别是还没有进行过 Android系统学习的人,本书会循序渐进地为你揭开Android开发的神秘面纱,让你系统地学习Android开发知识。
本书也非常适合已经学习过Android开发但是知识不成体系的人,特别是被一些培训机构填鸭式教育出来的人,通过本书的学习,可以帮你梳理知识,学会Android开发。
本书也适合那些靠自学成长,但是知识点比较零散的人,通过本书的学习,让你从体系和结构上对Android有一个更清晰的认识,把自己之前学的知识点串起来而成为真正掌握Android开发的高手。
本书还特别适合学校或培训机构用来作为Android教学的标准教材,除了对理论知识的介绍外,书中的真实案例可以让读者更深刻地体验到企业的真实产品需求,让学习和实践联系得更加紧密。
本书不太适合那些已经俱备丰富理论和实战经验的开发者,本书不适合光说不练的开发者。
本书特色
本书遵循第一版的写作宗旨,通过本书的学习,让不懂Android开发的人系统地快速掌握Android开发的知识。书中内容的安排循序渐进、由浅到深,跟随本书的步调,一定可以学会Android开发。本书除了理论知识的介绍外,还加入很多实战经验技巧和实战案例剖析,让大家在学习的时候能理论结合实战,融会贯通,真正掌握Android开发技术和技巧。
本书内容
接下来,针对本书的内容组织和大家做个简短的说明。
第1章 Android开发扫盲
本章主要给还不熟悉Android开发的读者做个扫盲,让大家对Android开发有一定的认知,了解整个Android行业和Android开发行业。
紧接着阐述了如何搭建标准的开发环境,认知 Android SDK 以及第一个Hello EoE程序,以下各章主要内容介绍如下。
第2章 Android开发环境搭建
本章主要介绍了搭建 Android 开发环境需要的条件,诸如系统要求、SDK、IDE等需求,然后分别介绍了在Windows、Ubuntu和Mac OS上搭建开发环境的过程和步骤。总体来看,本章简单且重要,好的开始是继续前进的动力。
第3章 Android SDK介绍
本章主要介绍了Android SDK的相关内容,包括其文档解读,示例解读,以及相关API介绍,通过本章学习,可以比较清晰地把握Android SDK的全貌,熟悉其提供的相关示例,以及附带的工具使用。
第4章 Hello EoE
本章演示了如何创建第一个“Hello EoE”项目,通过这个项目我们了解到如何快速构建一个Android的项目工程,以及如何对Android的项目进行调试。
通过上面3章的内容介绍,大致了解了Android环境的搭建和Android SDK,并通过一个真实的项目工程大致了解了Android项目结构。
第5章 Android应用程序架构分析
本章主要对Android系统的体系架构进行了简单的分析,让大家能够基本了解Android系统的构成。
第6章 Activity
本章主要对Android中最重要的组件之一Activity进行了基本的讲解。在本章的最开始就已经说明了 Activity 对整个应用程序的重要性。所以,学好Activity可以说是开发Android应用程序必备基础技能之一,尤其是对Activity的生命周期及基本状态的了解也是非常重要的。
第7章 Intents&Intent Filters&Broadcast Receivers
本章为大家讲解了 Android 的灵魂 Intent,程序的跳转和数据的传递基本上都是靠它,另外,也讲解了Intent-Filter和BroadcastReceiver等基础概念。最后的小实例结合了Intent-Filter、BroadcastReceiver及Notification等知识点。
第8章 Service
本章主要讲了什么是 Service,以及Service的两种形式和生命周期的基本理论知识,之后又结合一个小实例对 IntentService 和 Service 类进行了比较,知道使用 IntentService 来创建启动形式 Service 更为合适。用关于绑定形式Service实例,进一步演示了如何绑定一个Service并与之通信交互 。
第9章 Content Providers
本章主要介绍了 ContentProvider 及 ContentResolver的基本概念,并通过两个小实例演示了如何调用系统提供的数据,以及如何通过 ContentResolver调用自定义的ContentProvider。
第10章 用户界面
本章是分量比较重的章节,介绍了用户界面常用的一些布局和控件,并用实际代码演示了基本用法。重点介绍了最常用的线性布局(Linear Layout)和相对布局(Relative Layout),演示了基本写法和展示了示例图。此外,还介绍了Listview、输入控件(Input Controls)、菜单(Menu)、活动栏(Action Bar)和通知(Notification)的用法。
第11章 线程&进程
在本章学习中,首先介绍了Android系统里线程、进程的基本概念,然后通过一个应用程序的运行过程,讲解了应用运行过程中进程、线程及各类组件的关系。
第12章 信息百宝箱—全面数据存储
在本章中,读者可以学习到SharedPreferances、流文件存储、面向对象的数据库的使用方法和SQLite数据库的使用方法,并且通过一个记事本的实例,完整地展示了SQLite数据库的增、删、改、查的操作方法。
第13章 Widget
本章主要学习了Android中Widget的基本概念、Widget的生命周期、如何设计出更好的Widget,并且和大家一起学习了一个eoeWiki的实例来加深对Widget整体的理解。
上面第5~13章这9章的内容构成了对Android主要知识点的阐述,熟练掌握这些内容后,再加以练习和实战就可以进行一般Android应用的开发。
第14章 网络通信和XML解析
本章主要介绍了Android应用开发中最常见的网络通信的处理,以及网络传输的XML数据的解析方式,让大家以后在和网络打交道的时候更游刃有余。
第15章 灵活的应用
本章首先介绍了Android中常见的自定义组件的方法,然后介绍了一些关于片断布局的技巧,最后介绍了画布的技巧。希望通过本章的引导式学习让大家能在自己实际的工作中创建更加灵活的应用。
第16章 多设备适配
本章对Android应用中大家最关心的多屏幕、多语言、多版本问题进行了介绍,希望大家通过本章的学习能开发出适配性很好的应用。
第17章 开发好应用
本章简单介绍了如何开发好应用,用“如何更省电”这个最常见的话题来阐述开发思路,最后还介绍了一些需要特定硬件(如NFC)支持的功能是如何开发的。希望通过本章的学习,让大家能继续深入研究Android技术。
第18章 Android UI设计规范
本章首先介绍了Android UI的设计规范,进而告诉大家Android中应该努力遵守的UI设计原则,最后通过3个典型例子介绍了Android中的UI设计规范的实战技巧。
上面第14~18章这5章的内容主要是为了打开大家的思路,让自己能修炼进阶。而接下来的是本书的实战部分,精选了6个真实的案例和大家分享,分别介绍如下。
第19章 综合案例一——图书信息查询
通过本章的学习,可以了解到RelativeLayout 的布局细节,如何通过Intent启动第三方应用,如何通过Intent传递对象,如何从网络下载数据,如何使用豆瓣图书API,如何解析JSON等。
第20章 综合案例二——eoe Wiki客户端
本章以eoe Wiki客户端应用为例,以整个软件开发流程为讲解主线,为大家讲述了软件开发各个阶段我们需要做的事情及注意事项,并重点分析了 eoe Wiki客户端中的功能模块:滑块特效、网络交互、JSON解析、数据与缓存等。通过本章的学习,我们应该对整个软件开发的流程及每个阶段有一个清楚的了解,并且对网络社交应用有一定的经验积累,可以顺利地进行其他类似社交应用的开发。
第21章 综合案例三——广告查查看看
本章实例是个很时髦的话题,主要讲解如何对加入了广告的应用进行检测分析,并选择性删除。其中也涉及一些基础的小知识,如各大广告平台预览、解析XML文件等。
第22章 综合案例四——手机信息查看小助手
本章以一个手机信息查看助手的应用分析为起点,讲述了如何获取和查看手机设备自身的一些信息,例如,系统信息、硬件配置信息、软件安装情况,以及一些运行时的信息。通过本章的学习,相信能使读者在硬件操作方面积累一定的经验 ,可以顺利地进入手机硬件相关的应用开发。
第23章 综合案例五——土地浏览器实例
在土地浏览器开发这一章中,首先讲到了为什么要开发浏览器,开发浏览器的意义。然后,一一列举了土地浏览器中的各项功能。接下来,根据列举的各项功能,分别详细讲解了各项功能的实现过程。
第24章 综合案例六——地图跟踪
本章我们以一个百度地图的示例程序,学习通过百度地图 SDK 开发手机地图应用程序的过程,并讲解了百度地图SDK中主要功能API的用法。
如何阅读
本书建议的阅读方式是按顺序阅读,并且要仔细阅读,通过前面的理论学习后,一定要对书中的案例进行理解、思考和实践,并动手修改案例添加一些新的功能。
读完一遍后,建议将本书放在比较显眼的地方,在实际工作中遇到难题的时候有针对性地翻阅,希望你的每次阅读都会有新的收获。
读者交流专区
作为本书的内容答疑和技术支持,我们在eoeAndroid开发者社区为本书创建了专门的讨论区,如果你对书中内容有不是很理解的地方,都可以来这里提出,我们一定会认真解答。另外,我们还会在这里就书中的问题展开拓展讨论、错误修订和源程序下载等。
讨论专区及源程序下载网址:http://www.eoeandroid.com/group-35-1.html。
友情提醒
Android 还是一个新兴的平台,其截止到我们完稿,都还处在高速发展过程中,版本更新和使用方法都会或多或少发生变化,我们力求撰写的内容能跟上最新的版本,但是上市之后,如果再有新版本发布,我们会及时将需要修改或者完善的内容,包括源程序在“读者交流专区”发放出来,记住最新的源程序或者新版变化到社区中获取。
支持网站和社区:
http://www.eoeandroid.com;
http://www.eoe.cn。