Android程序设计实用教程(txt+pdf+epub+mobi电子书下载)


发布时间:2020-06-14 10:03:47

点击下载

作者:向守超

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

Android程序设计实用教程

Android程序设计实用教程试读:

前言

Android是基于Linux内核的软件平台和操作系统,是Google在2007年11月5日公布的手机系统平台,早期由Google开发,后由开放手机联盟(Open Handset Alliance)开发。它采用了软件堆层(software stack,又名以软件叠层)的架构,主要分为三部分。底层以Linux内核工作为基础,由C语言开发,只提供基本功能;中间层包括函数库Library和虚拟机Virtual Machine,由C++开发。最上层是各种应用软件,包括通话程序、短信程序等,应用软件则由各公司自行开发,以Java作为编写程序的主要部分。不存在任何以往阻碍移动产业创新的专有权障碍,号称是首个为移动终端打造的真正开放和完整的移动软件。Google通过与软、硬件开发商、设备制造商、电信运营商等其他有关各方结成深层次的合作伙伴关系,希望借助建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。

随着Android平台的发展,引发了Android人才荒。但符合条件的Android工程师屈指可数,企业招聘难度可想而知。我们相信,在未来几年内,Android开发工程师将成为3G行业炙手可热的岗位之一。3G人才全球紧缺,实用人才培养已迫在眉睫!在国内三大运营商如火如荼的3G营销战持续升温,再加上3G的推出对整个行业的巨大推动作用,无疑将引爆3G手机开发工程师这个黄金职位。所以我们说程序员必学Google Android的理由可以总结为:更快的薪酬提升通道、更好的热门就业岗位、更多的行业人才需求、最热门的新技术行业。

本书包括10章内容,分别介绍了以下内容:

第1章Android开发环境配置,对Android的起源、优点和系统架构进行了介绍;详细介绍了Android开发环境的配置,Android应用程序的创建以及应用程序的结构分析。

第2章Android应用程序,对Android应用程序的四大基本组件进行了详细介绍,详细讲述了Android应用程序从活动状态、暂停状态、停止状态和非活动状态整个生命周期过程。详细介绍了LogCat工具在调试应用程序过程中,对程序错误的定位和分析。

第3章Android常用基本控件,对进行用户界面开发常用的Android布局管理器、基本控件、菜单、对话框、事件和动画播放技术进行了详细介绍。Android中的布局包括线性布局、表格布局、相对布局、帧布局和绝对布局,基本控件主要包括文本框、按钮、单选按钮、复选按钮、状态开关按钮、日期时间控件和图片控件的使用。菜单包括选项菜单、子菜单和上下文菜单。Android平台下的对话框主要包括普通对话框、选项对话框、单选多选对话框、日期和时间对话框以及进度对话框。

第4章Android常用高级控件,对自动完成文本框、滚动视图、列表视图、滑块与进度条、画廊与消息提示、下拉列表与选项卡等高级控件进行了详细介绍,并辅以详细案例。

第5章 Android游戏应用程序开发,Android平台下的应用开发,一般来说主要分为商业应用和游戏应用两种。本章重点介绍自定义View和SurfaceView类在游戏开发中的应用,游戏开发中的碰撞与检测技术,最后通过扫雷游戏的开发详细介绍了游戏开发的步骤。

第6章Android消息与广播,Intent是轻量级的进程间通信机制,用于跨进程的组件通信和发送系统级的广播。本章让读者基本了解Android系统的组件通信原理,掌握利用组件通信启动其他组件的方法,以及利用组件通信信息和发送广播消息的方法。

第7章 Service后台服务,Service是Android系统的后台服务组件,适用于开发无界面、长时间运行的应用功能。本章让读者了解后台服务的基本原理,掌握进程内服务与跨进程服务的使用方法,有助于深入了解Android系统的进程间通信机制。

第8章 数据存储与访问,Android平台提供了多种数据存储方法,包括易于使用的SharedPreferences,经典的文件存储和轻量级的SQLite数据库。通过本章的学习,读者可以了解Android平台各种组件数据存储方法的特点和使用方法,掌握跨进度的数据共享方法。

第9章Android位置服务与地图应用,位置服务和地图应用是发展最为迅速,有着大量潜在需求的领域,通过本章的学习可以让读者简单地了解位置服务和地图应用的概念、方法和技巧。读者可以使用Google提供的地图服务,构建提供位置服务的应用程序。

第10章 综合案例设计与开发,本章将以“手机相册服务软件”作为示例,综合运用前面章节所学到的知识和技巧,从需求分析、界面设计、模块设计和程序设计等几个方面,详细介绍Android应用程序的设计思路与开发方法。本章提供的“手机相册服务软件”是2012年“全国软件杯”软件设计大赛Android开发项目的本地相册内容,是一个比较综合的案例。

本书由重庆正大职业技术学院的向守超、姚骏屏担任主编,由辽宁信息职业技术学院的朱雷和无锡工艺职业技术学院的邓书基担任副主编。本书在编写过程中得到了各方面的大力支持,在此一并表示感谢。

为了方便教师教学,本书配有电子教学课件及相关资源,请有此需要的教师登录华信教育资源网(www.hxedu.com.cn)免费注册后进行下载,如有问题可在网站留言板留言或与电子工业出版社联系(E-mail:hxedu@phei.com.cn)。

由于编者水平有限和时间仓促,书中难免存在疏漏和不足。希望同行专家和读者能给予批评和指正。

编 者

第1章 Android开发环境配置

Android 是一个优秀的开源手机平台,我们需要对 Android 平台的起源、发展、特征和体系结构有个初步地了解。Android 开发环境的安装与配置是开发 Android 应用程序的第一步,也是深入 Android 平台的一个非常好的入口。通过本章的学习,我们可以完全了解 Android,掌握安装、配置Android开发环境的步骤和注意事项,熟悉Android SDK和ADT插件的用途,了解其在应用程序开发过程中可能会使用到的各种工具。

1.1 Android简介

Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动开发软件。1.1.1 Android起源

Android本是一家公司的名称,这家公司的创始人名叫Andy Rubin。Andy Rubin创立了两个手机操作系统公司:Danger和Android。Danger以5亿美元卖给微软,成为了今天的Kin,Android以4千万美元卖给Google。Android 作为Google企业战略的重要组成部分,将进一步推进“随时随地为每个人提供信息”这一企业目标的实现。全球为数众多的移动电话用户正在使用各种基于Android的电话。谷歌的目标是让移动通信不依赖于设备甚至平台。出于这个目的,Android 将被补充,而不会替代谷歌长期以来奉行的移动发展战略:通过与全球各地的手机制造商和移动运营商结成合作伙伴,开发既有用又有吸引力的移动服务,并推广这些产品。

Android手机就是使用Android操作系统或OMS操作系统的手机,2008年9月22日,美国运营商T-Mobile在纽约正式发布第一款Android手机——T-Mobile G1,如图1-1所示。该款手机为台湾宏达电代工制造,是世界上第一部使用Android操作系统的手机,支持WCDMA/HSPA网络,理论下载速率7.2Mbps,并支持Wi-Fi。2009年9月初,摩托罗拉坐镇主场在旧金山举办的Giga OM 2009大会上携手T-Mobile正式发布了旗下首款搭载Android操作系统的智能手机——MOTO CLIQ(见图1-2),使其在沉寂许久后的首次爆发吸引了全球无数用户的目光。如果说T-Mobile G1的出世开辟了Android领域先河的话,那么摩托罗拉CLIQ的发布则更多地被视为昔日手机霸主的强势回归!2009年10月28日摩托罗拉和网络运营商Verizon共同宣布了首款采用Android 2.0的手机Droid。2010年1月索尼爱立信首款Android机型X10上市。2010年1月7日,Google在其美国总部正式向外界发布了旗下首款合作品牌手机Nexus One(HTC G5),并同时开始对外发售。2010年7月9日,美国NDP集团调查显示,Android系统已占据了美国移动系统市场28%的份额。我们相信未来将有越来越多的Android手机握在消费者的手中。图1-1 第一款Google手机T-Mobile G1图1-2 MOTO CLIQ1.1.2 Android的优点

目前市场上的手机操作系统除了Android,还有Symbian、iPhone等,与这些手机系统相比,Android具有如下的优点:

第一,真正开放性。Android是一个真正意义上的开放性移动开发平台,它同时包含底层操作系统以及上层的用户界面和应用程序——移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍。Google与OHA合作开发Android,目的就是通过与运营商、设备厂商、开发商等结成深层次的合作伙伴关系,来建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统,这样应用程序之间的通用性和互联性将在最大程度上得到保持。另一方面,Android平台的开放性还体现在不同的厂商可以根据自己的需求对平台进行定制和扩展,以及使用这个平台无须任何授权许可费用等。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。开放性对于Android的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,最大的收益正是丰富的软件资源。开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪的手机。

第二,应用程序相互平等。所有的Android应用程序之间是完全平等的,所有的应用程序都运行在一个核心引擎上面,这个核心引擎就是一个虚拟机,它提供了一系列用于应用程序和硬件资源间通信的API。抛开这个核心引擎,Android所有其他的东西,包括系统的核心应用和第三方应用都是完全平等的。

第三,应用程序之间沟通无界限。在Android平台下开发应用程序,能方便实现应用程序之间的数据共享,只需要经过简单的声明或操作,应用程序即可访问或调用其他应用程序的功能,或者将自己的部分数据和功能提供给其他应用程序使用。

第四,快速方便的应用程序开发。Android平台为开发人员提供了大量的实用库和工具,开发人员可以快速创建自己的应用程序。如今叱咤互联网的Google已经走过10年,从搜索巨人到全面的互联网渗透,Google服务如地图、邮件、搜索等已经成为连接用户和互联网的重要纽带,而Android平台手机将无缝结合这些优秀的Google服务。1.1.3 Android的系统架构

Android是基于Linux内核的软件平台和操作系统,采用了软件堆层(Software Stack,又名软件叠层)的架构,主要分为四部分,如图1-3所示。第一层以Linux内核工作为基础,由C语言开发,只提供由操作系统内核管理的底层基本功能;第二层为中间件层,包括函数库Library和虚拟机Virtual Machine,由C++开发;第三层为应用程序框架层,提供了Android平台基本的管理功能和组件重用机制;第四层为应用程序层,提供了一系列核心应用程序,包括通话程序、短信程序等,应用软件则由各公司自行开发,以Java作为编写程序的一部分。

Linux Kernel Android基于Linux 2.6提供核心系统服务,例如:安全、内存管理、进程管理、网络堆栈、驱动模型。Linux Kernel也作为硬件和软件之间的抽象层,它隐藏具体硬件细节而为上层提供统一的服务。

Android Runtime Android包含一个核心库的集合,提供大部分在Java编程语言核心类库中可用的功能。每一个Android应用程序都是Dalvik虚拟机中的实例,运行在它们自己的进程中。Dalvik虚拟机设计成一个设备可以高效地运行多个虚拟机。Dalvik虚拟机可执行的文件格式是.dex,dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。大多数虚拟机包括JVM都是基于栈的,而Dalvik虚拟机则是基于寄存器的。两种架构各有优劣,一般而言,基于栈的机器需要更多指令,而基于寄存器的机器指令更大。dx是一套工具,可以将Java.class转换成.dex格式的工具。一个dex文件通常会有多个.class。由于dex有时必须进行最佳化,会使文件大小增加1~4倍,以ODEX结尾。Dalvik虚拟机依赖于Linux内核提供基本功能,如线程和底层内存管理。图1-3 Android体系结构图

Libraries Android包含一个C/C++库的集合,供Android系统的各个组件使用。这些功能通过Android的应用程序框架(Application Framework)暴露给开发者。下面列出一些核心库:

系统C库——标准C系统库(libc)的BSD衍生,调整为基于嵌入式Linux设备。

媒体库——基于PacketVideo的OpenCore。这些库支持播放和录制许多流行的音频和视频格式,以及静态图像文件,包括MPEG4、H.264、MP3、AAC、AMR、JPG、PNG。

界面管理——管理访问显示子系统和无缝组合多个应用程序的二维和三维图形层。

LibWebCore——新式的Web浏览器引擎,驱动Android 浏览器和内嵌的Web视图。

SGL——基本的2D图形引擎。

3D库——基于OpenGL ES 1.0 APIs的实现。库使用硬件3D加速或包含高度优化的3D软件光栅。

FreeType——位图和矢量字体渲染。

SQLite——所有应用程序都可以使用的强大而轻量级的关系数据库引擎。

Application Framework 通过提供开放的开发平台,Android使开发者能够编制极其丰富和新颖的应用程序。开发者可以自由地利用设备硬件优势、访问位置信息、运行后台服务、设置闹钟、向状态栏添加通知等。开发者可以完全使用核心应用程序所使用的框架APIs。应用程序的体系结构旨在简化组件的重用,任何应用程序都能发布它的功能且任何其他应用程序都可以使用这些功能(需要服从框架执行的安全限制)。这一机制允许用户替换组件。所有的应用程序其实是一组服务和系统,包括:

视图(View)——丰富的、可扩展的视图集合,可用于构建一个应用程序。包括列表、网格、文本框、按钮,甚至是内嵌的网页浏览器。

内容提供者(Content Providers)——使应用程序能访问其他应用程序(如通讯录)的数据,或共享自己的数据。

资源管理器(Resource Manager)——提供访问非代码资源,如本地化字符串、图形和布局文件。

通知管理器(Notification Manager)——使所有的应用程序能够在状态栏显示自定义警告。

活动管理器(Activity Manager)——管理应用程序生命周期,提供通用的导航回退功能。

Applications Android装配一个核心应用程序集合,包括电子邮件客户端、SMS程序、日历、地图、浏览器、联系人和其他设置。所有应用程序都是用Java编程语言写的。

在本节中,我们简单介绍了Android的起源、Android的优点和Android的体系架构。从技术层面来讲,Android最震撼人心之处在于其开放性和服务免费。Android是对第三方软件完全开放的平台,开发者在为其开发程序时拥有更大的自由度,突破了iPhone等只能添加为数不多的固定软件的束缚。而且与Windows Mobile、Symbian等厂商不同,Android操作系统可以免费使用。

1.2 Android开发环境配置

Android开发环境的安装和配置是开发Android应用程序的第一步,也是深入Android平台的一个非常好的机会。Eclipse是开发Android应用程序的首选集成开发环境,因此我们这本书的案例都是在Eclipse工具中编写和调试的。由于各位读者都是有相当的Java基础,熟悉Java编程语言也对Eclipse集成开发环境有相当的了解,我们这里对于Android开发环境的安装和配置从以下几个方面简单加以介绍,相信我们的读者凭自己学习的能力,应该能融会贯通。

步骤一:安装JDK和Eclipse工具。这一步对于我们熟悉Java开发的读者来说,不是难事,只是告诉大家不要忘记了JDK环境变量的配置。这里就不赘述了。

步骤二:下载Android SDK工具包。Android SDK是Android软件开发工具包(Android Software Development Kit)的简写。是Google公司为了提高Android应用程序开发效率、减少开发周期而提供的辅助开发工具、开发文档和程序范例。

Android SDK可以从Google的中文Android开发网站上下载,网站的地址是http://developer.android.com/sdk/index.html。打开Android开发网页,会看到如表1-1所示的三种版本Android SDK压缩文件。在开发网站,不仅能够下载最新的Android SDK,还有许多有价值的学习内容,如开发文档、常见问题解答等。表1-1 Android软件开发包SDK表

如果你已经使用Android SDK开发环境,希望更新到新的版本或增加其他开发包,比如添加USB驱动程序,只要从Android SDK和AVD开发管理环境就可以取得最新的组件。不需要再下载新版的Android SDK开发包。Android SDK开发包的安装这里就不赘述了,有一定Java基础的读者都会通过网络等资源进行学习和使用。

步骤三:ADT插件的安装。ADT插件是Eclipse集成开发环境的定制插件,为开发Android应用程序提供了一个强大的、完整的开发环境,可以快速建立Android工程,用户界面和基于Android API的组件,还可以使用Android SDK提供的工具进行程序调试,对apk文件进行签名等。安装ADT插件有两种方法,一种是手动下载ADT插件的压缩包,然后在Eclipse中进行安装;第二种是在Eclipse中输入插件的下载地址,由Eclipse自动完成下载和安装工作。第二种方法比较简单方便,但出错的概率较第一种大,我们这里用第二种方法。

启动Eclipse,选择Help→Install New Software,打开Eclipse的插件安装界面,如Eclipse插件安装界面如图1-4所示,单击Add按钮,进入Add Site界面,如图1-5所示,在Add Site界面的Name文本框中输入插件名称如android,在Location文本框中输入ADT插件的下载网络路径https://dl-ssl.google.com/android/eclipse/。图1-4 Eclipse插件安装界面图图1-5 Add Site界面图

正确填写ADT插件压缩包的下载路径后,在Eclipse的插件安装界面上会出现ADT插件的安装选项图,如图1-6所示,选中Android DDMS复选框和Android Development Tools复选框,然后单击Next按钮进入ADT插件许可界面,如图1-7所示。图1-6 ADT插件的安装选项图图1-7 ADT插件许可界面

在ADT插件许可界面中,选择 I accept the terms of the license agreements单选项即可,待安装结束,重新启动Eclipse,使ADT插件生效。

步骤四:配置Android开发环境。在ADT插件安装之后,开始设置Android SDK的保存路径。首先选择Windows→Preferences命令,打开Android配置界面,如图1-8所示,单击Browse按钮,在SDK Location文本框中输入Android SDK的保存路径,最后单击Apply按钮使配置生效。图1-8 Android配置界面图

步骤五:虚拟设备AVD的创建。使用Android SDK开发的Android应用程序需要进行测试,Android为开发人员提供了可以在电脑上直接测试应用程序的虚拟设备AVD(Android Virtual Device),或称做模拟器。AVD的创建,首先启动Eclipse,选择Windows→Android SDK and AVD Manager,进入Android SDK and AVD Manager界面如图1-9所示,单击New按钮,弹出创建AVD的对话框,如图1-10所示。图1-9 Android SDK and AVD Manager界面图

在对话框中设置所要创建的AVD名称、API版本、SD卡大小以及AVD显示皮肤,单击Create AVD按钮,就完成了一个AVD的创建,依此类推,可以创建多个不同API版本的模拟器。创建成功AVD以后,可以启动模拟器,调试我们自己开发的Android应用程序了。图1-10 创建AVD对话框

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载