便携化是计算机发展的趋势。在人们的传统观念里,需要使用计算机必须坐下来,打开计算机,然后才能使用计算机。而在当今这个快节奏的生活中,传统形式的计算机已经越来越无法满足人们的需求,有时需要在候车的时候阅读最新的新闻,有时需要在火车上查看管理自己的证券交易情况,有时又需要在闲暇的时候能快速启动游戏消遣……在这样的市场需求下,用户更加迫切的需要便携式的计算机,这也是目前智能手机迅猛发展的重要原因。
几年前刚开始接触Android的时候,笔者就被Android开放自由的精神所感染。虽然Android诞生之初,受过很多人的质疑,但是随着加入Android阵营的硬件厂家、软件开发商、电信运营商和个人开发者的增多,Android的市场占有率已经越来越高。随着Android的迅猛发展,Android已经不仅仅是一款被用作智能手机的操作系统,它被更广泛的应用于平板电脑、电视、数码相机、车载系统、智能家居等等领域,这也导致了市场对Android开发人员需求的猛增。
随着近几年Android的功能越来越完善,它已经成为一款非常优秀的智能操作系统。面向开发者也越来越友善,现在是学习Android编程的最好时机。但是对于许多人来说,Android开发入门仍然是一个可望不可即的目标,这也成为笔者书写本书的动力,为了能帮助更多对Android有兴趣的开发人员,引领他们更快的入门并逐步具备编写复杂的应用程序的潜力。
在Android的发展历史中,存在着很多的Android版本,最近Google就发布了Android SDK的最新版Android 4.4 KitKat。在Android 4.0之后,Android的改变是翻天覆地的,这也导致在Android系统各版本的市场占有率上,Android4.x的压倒性优势。本书也将就对市场占有率最高的Android4.x SDK的开发进行详细的讲解。
本书主要是写给对Android感兴趣的初级开发人员,为了使他们能够更快速的理解Android的组件以及原理,本书均为对应章节的内容提供了充分的示例程序。这些示例程序首先教读者如何使用Android的内容,然后解释其工作原理。本书从最基本的Android组件的使用及原理入手,使读者充分理解Android SDK的底层架构与运行原理。但是Android开发是一个宏大的主题,任何一本都不可能面面俱到的介绍有关Android开发的全部内容,但笔者相信通过对本书的学习,读者会有充分的知识储备来应对任何与Android开发相关的技术难点。
本书涵盖了使用Android SDK进行Android开发的基本概念,共分为19个章节。
“第一章 Android应用开发概述”介绍了Android系统的发展历史及现状,并介绍了Android的系统结构以及Dalvik VM与JVM的区别和Android系统的优势,最后还简单介绍了Android应用开发涉及到的几个基本组件。
“第二章 第一个Android应用程序”介绍了如何搭载Android的开发环境,以及如何使用Android SDK提供的工具协助Android的开发,最后将以一个简单的HelloWord应用讲解Android项目的目录结构。
“第三章 Android的UI编程”介绍了AndroidUI编程所涉及到的内容,包括在Android下如何进行UI编程、几种UI布局的使用、SDK中包含的UI组件的基本使用等等。
“第四章 事件处理机制”介绍了Android应用开发的事件处理机制,其中包括Android下基于监听和基于回调两种事件处理机制的详细内容,最后还简单讲解了Android系统设置被改变后如何进行响应。
“第五章 深入理解Activity”介绍了Android四大组件之一的Activity,Activity主要用于承载UI组件,该章中涉及到Activity的使用以及配置、Activity的生命周期、Activity状态的保存与恢复、Activity的回退栈以及Activity的启动模式,最后还简单的对Fragment这个Android的新特性做了介绍。
“第六章 Intent和IntentFilter”介绍了如何在Android中使用Intent开启一个新的组件或者传递一段信息,并且详细介绍了Intent各个属性的含义,以及如何使用IntentFilter这个意图过滤器。最后以几个简单的示例讲解如何使用Intent调用系统应用协助工作,帮助读者更好的理解Intent和IntentFilter的工作原理。
“第七章 消息通知”介绍了在Android下如何将一段信息提示给用户,其中涉及到Toast消息提示以及Notification消息提示。
“第八章 菜单”介绍了Android下菜单的使用,并在最后详细介绍了ActionBar这个Android的新特性。
“第九章 对话框”介绍了Android下如何使用对话框,包括对话框的基本内容,以及警告对话框、进度对话框的基本使用。
“第十章 日志与测试”介绍了在Android下,在应用运行中实时的输入日志信息,以及如何使用JUnitTest这个单元测试框架,对Android应用程序进行白盒测试。
“第十一章 数据持久化”介绍了在Android应用程序中存储数据。其中涉及到SharedPreferences保存配置信息、内部存储、外部存储、缓存存储以及SQLite这个轻量级的文件型数据库的使用。
“第十二章 Android的网络访问”介绍了Android应用程序如何与Web服务器进行交互,并简单介绍了与Web服务器交互传递的数据解析,其中包括常用的JSON和XML的解析。
“第十三章 Android的多线程”介绍了如何在Android应用程序中使用多线程的内容,其中涉及到一些多线程的内容、异步任务(AsyncTask)以及Handler的知识。
“第十四章 服务(Service)”介绍了Android四大组件之一的Service组件。在其中详细介绍了Service的基础内容,包括Service的使用、Service的配置、Service的分类以及Service使用过程中的一些注意事项。最后还详细的介绍了如何在进程间调用服务及AIDL服务的使用。
“第十五章 内容提供者(ContentProvider)”介绍了Android四大组件之一的ContentProvider组件,其中包括ContentProvider的基本内容,以及如何使用ContentProvider暴露出应用程序的数据,如何使用ContentObserver调用其它应用程序暴露出来的数据。最后还在ContentProvider的基础上讲解了装载机(Loader)这个Android新特性的内容。
“第十六章 广播接收器(BroadcastReceiver)”介绍了Android四大组件之一的BroadcastReceiver组件,包括BroadcastReceiver的分类、如何注册BroadcastReceiver、如何发送一个广播,最后介绍了如何拦截系统事件的广播。
“第十七章 图形与图像处理”介绍了Android应用中如何处理图形与图像的内容,其中包括图片资源的使用、对现有的图片进行绘图、变换等操作。最后还讲解了Android对动画效果的支持。
“第十八章 多媒体应用开发”介绍了如何在Android应用中使用多媒体的内容,其中包括如何播放一段音频、视频,如何使用相机获取照片以及如何录制一段音频或者视频。
“第十九章 Android应用的资源”介绍了如何使用Android应用程序中定义的一些资源文件,其中包括资源的类型以及访问方式的介绍以及各项资源的详细使用。
谁是这本书的读者?(什么人适合这本书的内容)
本书并不是一个针对编程知识零基础Android开发的教程,本书针对的是打算使用Google提供的Android SDK进行开发Android应用程序的初级工程师。为了本书的阅读,您应该具有一些编程方面的知识,并且了解面向对象编程的概念,还应该基本掌握Java编程语言。
本书使用Google提供的ADT进行开发,其中包括Eclipse和Android SDK,所以必须具备一台供开发使用的计算机,支持Windows、Linux、Mac三种之一的操作系统。本书的所有示例以及截图均运行在Windows系统环境下,本书中所有的示例都可以在Android模拟器中运行,但拥有一部真实的Android设备,会从本书中获得更多的收获。
源代码可以通过什么网站下载。(本书提供!)