Android是一种基于Linux内核、开放源代码的操作系统,主要使用于移动设备,如智能手机、平板电脑、电视等。来自互联网的统计数据显示,Android已经成为目前使用最为广泛的移动操作系统,远超Apple公司的iOS和Microsoft公司的Windows Phone。根据Gartner对智能手机操作系统占有市场份额的预期,到2015年Android操作系统的占有份额将达到50%左右,远高于其他操作系统。
对于学习Java编程语言的读者,Android操作系统的出现,提供了新的学习方向。巨大的市场需求,提供了更多的机会,也急需更多的开发者提供更加丰富的应用。本书主要针对学习过Java编程语言,具备一定的编程基础,有意愿学习Android平台应用程序开发的读者人群。如果你目前正处于这种状态下,本书比较适合你的选择。
本书在编写过程中,按照知识的逻辑关系分章,循序渐进、重点突出,对知识点的讲解与介绍做到尽量全面,并给出可以应用于何种场合的建议。对于重、难点知识,给出专门的演示项目,按步骤讲解实现方式。多数学习开发的读者在熟悉了语法知识之后,都想迫不及待地一展身手,编写一款自己的软件,虽然这是良好的学习习惯,也是值得肯定的学习编程的积极态度。但是,如果所选择的项目过大、过于复杂,往往很难将功能实现,即使有参考代码和帮助文档,也会陷入代码海洋或文档风暴中,这样只会收到事倍功半的效果,而且,学习的积极性也会受到很大的打击。所以,对于初学者,建议选择功能单一、结构简单的项目。
全书所有章节讲解知识的方式统一,章节结构清晰,方便读者快速查询相关问题。每个章节开始都给出了该章的主要内容,列举出该章主要介绍的知识点。在介绍内容时,根据不同知识点的具体情况,介绍知识点的分类、周边信息并总结功能实现的步骤。书中经常涉及以下符号,读者应了解其含义:
表明知识点涉及内容的划分或实现步骤的说明。如对某个类中常用方法的说明,实现某个功能可以采用的方式有哪些。该符号所对应的知识点都需要掌握、熟记,能够达到应用的水平。
关键功能代码。该符号对应一段能够实现某个功能的关键代码,考虑到篇幅问题,多数情况下,它们并不是一段完整的代码,如果需要阅读项目的所有源代码,可查阅本书配套电子资料。
对某些知识在运用到项目中的建议,或者在使用某些知识时应该注意的事项。
本书配套电子资料中含有本书中所列全部项目(WorkSpace是BookDemo),读者可以将整个工作空间都引入Eclipse中。不同章节项目的命名以part××区分,同一个章节中不同项目的命名以part××_×区分。读者应特别留意命名为part××_×_×的项目,这些项目是某些Android项目所依赖的Web端程序,主要是第10章的项目。配套资料中的Android项目在开发时采用Eclipse ADT4.2、SDK4.2,运行的目的平台最低是Android 2.3.3。配套资料中的Web项目在开发时采用MyEclipse 9.1,这些项目需要部署在服务器中(如Tomcat 6.0)才能运行。
全书共分为10章。第1章介绍Java语言的基础知识; 第2章介绍Android开发环境,Android项目的结构,Android项目的调试与发布,并详细介绍了Activity的使用; 第3章介绍Android平台android.wigdet包中基本控件的使用,包括Form Widgets控件、TextFields控件、布局管理器、Image和Media 控件、Time和Date控件等; 第4章介绍Android平台高级控件的使用,包括ListView与适配器的使用、ExpandableListView、GridView、ScrollView和HorizontalScrollView、SlidingDrawer、TabHost和TabSpec、Gallery和ImageSwitcher; 第5章介绍Android平台系统组件的使用,包括Menu、自定义Dialog、Notification、ActionBar的功能解析和布局新方式Fragment; 第6章介绍四大组件Activity、Service、BroadcastReceiver、ContentProvider,以及Intent与IntentFilter; 第7章介绍2D游戏开发的基础知识,包括View与SurfaceView的使用、Canvas和Paint介绍、如何绘制游戏元素、屏幕坐标与屏幕事件等; 第8章介绍多媒体操作的内容,包括MediaPlayer、SoundPool、VideoView的使用; 第9章介绍Android平台数据存储的三种方式,包括SharedPreferences与Editor的使用,I/O流与读写SD卡,嵌入式数据库SQLite的使用; 第10章是Android平台网络编程的内容,包括TCP通信与Socket应用、URL访问网络资源、HttpClient的应用与WebService的应用、XML解析与JSON解析。
作为developer.android、CSDN、51CTO、eoeandroid、机锋开发者等技术论坛和社区的忠实用户和学习者,在本书的编写过程中,作者从中受益匪浅,也建议读者在遇到学习问题时,可以向专业技术论坛或社区求助。在本书完成之际,特别要感谢王慧芳教授、王志军教授给予的指导和建议,感谢桑婧、王慧、徐峰、王新峰和新锐IT工作室的成员给予的启发和帮助,也要感谢张新芳、朱思齐的大力支持。
由于作者学术与经验的欠缺,在本书的结构、知识点与难点的选择和解析过程中,存在一定的问题与不足,希望广大读者不吝赐教。相关技术问题可以发送邮件到tj_zhufengshan@163.com,只要有时间,作者当尽量给每个人回信。
朱凤山
2014年1月