前言
编写本书的目的
随着Android系统的迅猛发展,它已经成为全球范围内具有广泛影响力的操作系统,越来越多的厂商加入到Android的阵营,至2017年1月,Google公司对外公布,其旗下所属的Android系统全球市场占有率已经高达90%。各大中小型手机制造商近些年都在引入Android工程师,开发基于Android系统的智能手机。Android系统早就不仅仅是一款手机的操作系统,越来越广泛地应用于平板电脑、可佩戴设备、电视、数码相机等,造就了目前Android开发人才需求的快速增长。从大趋势上看,Android软件人才的需求将越来越大。
在这种背景下,Android开发学习者的队伍渐渐庞大起来,但是市场上适合Android开发者学习使用的书籍虽然并不少,但大多版本都已过时,有很多还是基于Android 4/5编写的,甚至有一些是基于Android 2.3的。Android发展到今天,已经推出了7.0版本,使用旧版本书籍进行学习会有诸多问题,严重时甚至会使读者开发的应用崩溃。另一个比较重要的问题是,几乎所有书籍使用的IDE都是Eclipse加ADT插件,但是,在大部分企业中Android开发早已使用Android Studio作为IDE了。这些都导致一些书籍的实用性大大下降。
本书由一线资深软件开发工程师基于目前广泛使用的Android 6/7和Android Studio 2.x开发环境倾力编撰,旨在帮助Android初学者和开发人员尽快掌握在Android Studio环境下进行应用开发的方法和技术。
本书主要内容
本书共15章,各章内容说明如下:
第1章对Android的发展史与现状和Android系统的特性做简单介绍,讲解如何搭建Android开发环境,并介绍如何使用Android Studio来创建第一个Android程序。
第2章通过一个工程实例来阐述Android App是如何运行的,并引出Activity这一在Android开发中极其重要的组件。在本章中,系统地讲解了Activity的概念、生命周期、多个Activity之间的跳转,以及Activity的4种启动模式。另外,本章还介绍Intent在Activity组件中的应用,并且讲述如何使用Log。
第3章主要介绍布局管理器的作用,并介绍Android中的6种布局管理器,即LinearLayout、RelativeLayout、TableLayout、FrameLayout、AbsoluteLayout、GridLayout。所有的布局管理器既可以通过配置文件实现,也可以在Activity中用代码实现。布局管理器直接可以通过互相嵌套使用来实现更复杂的布局。
第4章系统地讲解在Android开发中常用的一些控件,同时结合控件讲解Android中的事件处理,对实际开发中经常使用的控件ListView进行了重点讲解。
第5章系统地讲述Fragment的使用场景、使用方法和生命周期,并将其与Activity的生命周期做比较,以便加深对Fragment的理解。同时,对ListFragment与DialogFragment这两个特殊的Fragment进行深入的讲解,对其用法和特性也都进行了分析。在本章最后还根据开发中的经验向读者阐释一些Fragment使用中常见的问题。
第6章非常详细地讲述ViewPager、RecyclerView这两个View控件的使用。这两个控件都是比较新的控件,在已有的Android开发书籍中很少提及,而在实际的开发过程中又经常使用,所以这里花较多篇幅对其讲解。同时,针对一些特殊情况,比如官方提供的控件无法解决的问题,如何通过自定义控件来解决也进行了讲解。
第7章主要讲解数据操作的内容,系统地讲述4种数据存储的具体方式。同时,本章引入动态权限的概念,提醒读者在使用Android6.0以上版本进行开发时,添加权限应该是动态获取,而不是静态获取。
第8章讲解Service是什么、Service的分类、为什么需要使用Service以及Service的几种使用方法,同时结合Service讲解Handler机制和AsyncTask的用法。
第9章阐述广播机制,并通过实例告诉读者如何使用系统广播,以及通过对普通广播和有序广播的介绍讲解如何自定义广播。另外,本章还讲述Android为了能够简单地解决广播的安全性问题而引入的一套本地广播机制——本地广播。
第10章对Android中的网络通信技术进行系统的分析与总结,讲解如何使用HTTP及Socket进行网络通信,同时针对一些特殊的需要讲解WebView的使用,重点介绍OkHttp这一实际开发中经常使用的、非常重要的HTTP请求框架。
第11章主要对Android系统中的各种多媒体技术进行学习,其中包括通知的使用技巧、调用摄像头拍照、从相册中选取照片、播放音频和视频文件,以及如何进行视频和音频的录制。此外,本章还介绍如何使用Android提供的API来接收、发送和拦截短信,这使得读者甚至可以编写一个自己的短信程序来替换系统的短信程序。
第12章主要以传感器和地理信息技术为例讲解Android中具有特色的一些功能:传感器和地理信息技术。具体来说就是介绍加速度传感器、光照传感器、方向传感器的使用,并根据它们的原理开发具有特殊功能的小应用;以及通过使用地理信息技术开发能够定位的应用,使用Geocoder类进行地理位置解析、获取具体的位置,通过使用第三方工具高德地图来展示位置。
第13章主要介绍VR这一热门技术,阐述VR的技术实现原理、存在的瓶颈以及当前的市场现状和市场前景,最后通过一个实例来讲解基于unity3D的Android平台VR应用开发。
第14章讲述Android NDK开发的背景以及优势,并详细讲解如何使用Android Studio进行Android NDK开发。
第15章通过一个完整的应用讲述在开发实践中如何将一个产品从需求变为实际可用的应用,并将其发布到应用市场。
本书适合的读者
本书详细地介绍Android开发的各种知识和技术,从基础到实践,提供了大量代码示例和完整的项目案例,无论是初次接触Android开发的读者,还是想提高Android开发技能的程序员,包括大学生和企业互联网营销人员,都可以通过本书获益。
由于笔者水平有限,书中难免有欠妥之处,敬请广大读者批评指正。对于书中存在的问题,读者若有什么建议或意见可发信至527409323@qq.com,编者会在第一时间回复。
本书示例源代码下载
为了方便读者学习,本书提供了对应的范例程序,下载地址为http://pan.baidu.com/s/1skOP8PB(区分英文字母大小写以及数字和字母)
如果下载有问题,请电子邮件联系booksaga@126.com,邮件主题为“Android开发实战:从学习到产品”。
致谢
编者的很多知识都来源于互联网。互联网是一个丰富的知识资源库,只要你愿意探索总能获得有用的东西。感谢那些在互联网上免费分享知识资源的人们,是他们丰富了互联网的内涵,发扬了知识共享的精神,使得每个人可以平等地获取知识、得到进步。
感谢Google公司和它的Android开发团队,可以说是他们创造了这个移动互联网时代。
感谢清华大学出版社王金柱编辑的支持和鼓励,感谢他在本书编写与出版过程中的热情帮助和耐心指导。
编者
2017年2月8日