精通Android应用开发(txt+pdf+epub+mobi电子书下载)

作者:王治国,王捷

出版社:清华大学出版社

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

精通Android应用开发

精通Android应用开发试读:

前言

当今社会已经进入了信息移动时代,手机功能越来越智能,越来越开放,为了实现这些需求,必须有一个好的开发平台来支持,Android是2007年11月由Google公司宣布的基于Linux平台的开源手机操作系统,任何公司及个人都可以免费获得源代码及开发SDK。由于Android平台的开放性和优异性,得到了业界广泛的支持,是目前最受欢迎的嵌入式操作系统之一,其发展趋势势不可挡,Android移动软件开发已成为当今最为流行的移动终端开发技术。

移动终端的快速发展使得Android系统应用的需求激增,很多在校生和广大开发者都加入了Android开发阵营。为了帮助开发者更快地进入Android开发行列,笔者精心编写了本书。本书具有以下几个特点:结构合理,从读者的实际需求出发,科学安排知识结构,内容由浅入深,循序渐进,逐步展开,反映了当前Android技术的发展和应用水平;浅显易懂,条理清晰、语言简洁,通过大量简单易懂的实例帮助读者快速掌握知识点,每部分既相互连贯又自成体系,使读者既可以按照本书编排的章节顺序进行学习,也可以根据自己的需求对某一章节进行有针对性的学习;实用性强,注重实用性和可操作性,通过实例使读者在掌握相关技能的同时,学习相应的基础知识。所有的实例都调试运行通过,读者可以直接参照使用。

全书分15章,各章内容介绍如下。

第1章 Android概述

,简单地介绍手机操作系统、Android的发展及其优越性。

第2章 重点介绍如何搭建Android开发环境。

第3章 介绍了Android应用程序的构成及程序的内部执行流程。

第4~5章 对Android的界面布局和Widget组件及事件处理机制进行详细介绍。

第6章 主要讨论Android的门面Activity及其之间的跳转和数据传递。

第7章 详细介绍了Android系统中的Intent功能和用法。

第8章 对如何创建、配置Service组件及如何启动、停止Service进行详细阐述。

第9章 对实现消息异步处理的组件BroadcastReceiver进行深入探讨。

第10章 详细介绍Android的Preferences、文件和数据库SQLite三种数据存储方式的使用。

第11章 主要讨论Android系统中ContentProvider组件的功能和用法。

第12章 对基于Android平台的音视频录制和播放功能进行具体介绍。

第13~14章 主要介绍Android平台下进行网络编程的方法、如何进行定位及如何实现Google提供的地图服务。

第15章 介绍如何使用Android技术开发一个移动版同学簿,该系统综合运用了本书各章节的知识和技术,包括Android如何获取网络数据进行数据的绑定,实现实时网络图片加载、Android UI布局、UI界面的动态更新、数据全局共享处理和界面数据交互等。

本书知识点全面,结构合理,重难点突出,实例丰富,语言简洁,适用于Android移动软件开发初中级用户。

本书由郑州轻工业学院王治国、王捷编著,参加本书编写的还有钱慎一、胡东华、黄永丽等,此外,白亚东、白永刚、王国胜、刘松云、张丽、张班班、胡文华、尼春雨、蒋军军、聂静等也参与了本书部分内容的编写工作,对此表示衷心的感谢。特别感谢郑州轻工业学院教务处的大力支持。第1章Android概述智能手机正快速走入人们的生活,已经有越来越多的人把智能手机当作娱乐、办公的首选设备。智能手机系统显示尤为重要,本章将从智能手机操作系统的分类及其优缺点、Android操作系统发展和优越性及其系统架构等几个方面进行介绍,使读者对手机操作系统及其Android有总体的了解。1.1智能手机操作系统简介

2012年7月,中国互联网信息中心发布第30次《中国互联网络发展统计报告》,报告显示我国手机网民规模继续稳步增长,截至2012年6月底,我国手机网民达到3.88亿,较2011年年底增加了约3270万人,占总体网民比例的72.1%。由这些统计数据不难看出,智能手机和人们的生活息息相关,因此,学习和研究智能手机软件开发,具有广阔的社会需求和工程实践意义。

智能手机是指“像个人电脑一样,具有独立的操作系统,可以由用户自行安装软件、游戏等第三方服务商提供的程序,通过此类程序不断对手机的功能进行扩充,并可以通过移动通讯网络来实现无线网络介入的这样一类手机的总称”。由于智能手机多使用ARM而非X86的CPU体系架构,因此,智能手机操作系统和开发环境与普通计算机有很大区别。目前,主流的智能手机操作系统有Android、iOS、Symbian、Windows Phone和BlackBerry OS等,它们占据了智能手机市场99%以上的份额。下面对这些手机操作系统进行逐一简介。(1)Symbian

Symbian系统是塞班公司为手机设计的操作系统。2008年12月2日,塞班公司被诺基亚收购。2011年12月21日,诺基亚官方宣布放弃塞班(Symbian)品牌。由于缺乏新技术支持,塞班的市场份额日益萎缩。截止至2012年2月,塞班系统的全球市场占有量仅为3%,中国市场占有率则降至2.4%。2012年5月27日,诺基亚宣布,彻底放弃继续开发塞班系统,取消塞班Carla的开发,但是服务将一直持续到2016年。2013年1月24日晚间,诺基亚宣布,今后将不再发布塞班系统的手机,意味着塞班这个智能手机操作系统,在长达14年的历史之后,终将谢幕。(2)Windows Phone

Windows Phone是微软发布的一款手机操作系统,2010年2月,微软正式向外界展示Windows Phone操作系统。2010年10月,微软公司正式发布Windows Phone智能手机操作系统的第一个版本Windows Phone 7(以下简称WP 7),并于2010年年底发布了基于此平台的硬件设备。主要生产厂商有诺基亚、三星和HTC等,从而宣告了Windows Mobile系列彻底退出了手机操作系统市场。全新的WP 7完全放弃了WM5,6X的操作界面,而且程序互不兼容,并且微软完全重塑了整套系统的代码和视觉,但由于担心移动产品和整体品牌的连续性,一开始微软将其命名为“WP 7”。WP 7曾于2010年2月16日更名为“Windows Phone 7 Series”,其后于4月2日取消“Series”,改回“Windows Phone 7”。

2011年9月27日,微软发布了Windows Phone系统的重大更新版本“Windows Phone 7.5”,首度支持中文。Windows Phone 7.5是微软在WP 7的基础上大幅优化改进后的升级版,其中包含了许多系统修正和新增的功能,以及繁体中文和简体中文在内的17种新的显示语言。

2012年6月21日,微软在美国旧金山召开发布会,正式发布全新操作系统Windows Phone 8(以下简称WP8)。WP 8放弃WinCE内核,改用与Windows 8相同的NT内核。WP 8系统也是第一个支持双核CPU的WP版本,宣布WP进入双核时代,同时宣告着WP 7退出历史舞台。由于内核变更,WP 8将不支持市面上所有的WP 7.5系统手机升级,而WP7.5手机只能升级到WP 7.8系统。WP 8于2012年10月11日上市。(3)iOS

苹果iOS是由苹果公司开发的手持设备操作系统。苹果公司最早于2007年1月9日的Macworld大会上公布这个系统,最初是设计给iPhone使用的,后来陆续套用到iPod touch、iPad及Apple TV等苹果产品上。iOS与苹果的Mac OS X操作系统相同,它也是以Darwin为基础的,因此,同样属于类Unix的商业操作系统。原本这个系统名为iPhone OS,直到2010年6月7日WWDC大会上宣布改名为iOS。截止至2011年11月,根据Canalys的数据显示,iOS已经占据了全球智能手机系统市场份额的30%,在美国的市场占有率为43%。(4)Android

Android是一种基于Linux的自由及开放源代码的操作系统,主要用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机发布于2008年10月。Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机和游戏机等。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。2012年11月数据显示,Android占据全球智能手机操作系统市场76%的份额,中国市场占有率为90%。1.2Android的基本概念

Android操作系统市场占有率越来越高,这取决于它较其他智能手机操作系统有无法比拟的优越性,本节主要介绍Android的发展历史及其优越性。1.2.1 Android的前世

Android的诞生还要从Andy Rubin说起。Rubin是硅谷著名的极客(对计算机和网络技术有狂热兴趣并投入大量时间钻研的人),他家的门铃是硅谷最昂贵的玩具——视网膜扫描仪。Rubin很喜欢机器人,这也就是为什么他为创立的新公司取名Android的原因。Rubin最初的目标是想把Android打造成一个可以对任何软件设计人员开放的移动终端平台。很快这个公司就获得了众人的青睐,很多人表示打算买下他的公司。而Rubin唯独向Google抛出了橄榄枝,他发了一封邮件给拉里·佩奇,表示要跟他合伙。几周之后,Google就抢先把Rubin的公司买下。Google收购Android时没有宣布任何计划,只是向《商业周刊》表示:“我们收购Android是因为它拥有天才般的工程师,这些工程师具有非常棒的技术。我们非常兴奋让他们加入Google。”

随着Rubin加入Google,2007年网络上就盛传全球最大的在线搜索服务商Google将进军移动通信市场,并推出资助品牌的移动终端。Google手机的图片更是满天飞,光外形就有翻盖、滑盖、旋屏和触控等多种版本。更有人将其与苹果公司于2007年初推出的iPhone相提并论。

2007年11月5日,Google终于揭开谜底。Google宣布与其他33家手机厂商(包括摩托罗拉、华为、宏达电、三星、LG等)、手机芯片供应商、软硬件供应商、移动运营商联合组成开发手机联盟(Open Handset Alliance,OHA),供发布了名为Android的开放手机软件平台。参与开放手机联盟的这些厂商,都会基于Android平台来开发新的手机业务。Android向手机厂商和移动运营商提供一个开放的平台,供他们开发创新性的应用软件。

Android作为Google企业战略的重要组成部分,将进一步推进“随时随地为每个人提供信息”这一企业目标的实现。Google的目标是让移动通信不依赖于设备甚至平台,基于此,Android将进一步补充Google长期以来的移动发展战略:通过与全球各地的手机厂商和移动运营商结成合作伙伴,开发既实用又有吸引力的移动服务,并推广这些产品。1.2.2 Android的优点

与其他智能手机操作系统相比,Android具有以下几个无可比拟的优点。(1)开放性。Google与开放手机联盟合作开发了Android,Google通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,希望通过建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。(2)应用程序无界限。Android上的应用程序可以通过标准API访问核心移动设备功能。通过互联网,应用程序可以产生它们的功能,可供其他应用程序使用。(3)应用平等。移动设备商的应用程序可以被替换或扩展,即使是拨号程序或主屏幕这样的核心组件。(4)快速方便的应用开发。Android平台为开发人员提供了大量的使用库和工具,开发人员可以快速创建自己的应用。1.3Android系统架构

通过上一节的介绍,可以对Android的优点有了初步的了解,那么,这些优越性是由什么来保证的呢?这取决于Android的体系架构,其体系架构如图1.1所示。图1.1 Android体系架构图

由图1.1可以看出,Android体系架构采用了软件叠层技术,整个架构由应用层、应用程序框架层、Android运行时、库及Linux内核五层构成。(1)应用层

Android平台缺省包含了一系列的核心应用程序,包括电子邮件、短信、日历、地图、浏览器和联系人管理程序等,这些应用程序都是用Java语言编写运行在虚拟机上的。当然,作为程序员也可以用自己写的程序来替换Android提供的应用程序,这需要应用程序框架层来保证。(2)应用程序框架层

这一层是进行Android开发的基础,开发人员可以使用这些框架来开发自己的应用程序,从而简化了程序开发的架构设计,但是必须遵守其框架的开发原则。应用程序框架层包含视图系统、内容提供器、资源管理器、通知管理器、活动管理器、窗口管理器、电话管理器和包管理器九大部分,如图1.1所示。(3)Android运行时

Android虽然采用Java语言开发、编写应用程序,但却不使用J2ME执行Java程序,而是用Android自有的Android运行时(Android Runtime)来执行。Android运行时包括核心库和Dalvik虚拟机两部分,如图1.1所示。

核心库包含两部分内容:一部分提供Java编程语言核心库的大多数功能;另一部分为Android的核心库。与标准的Java不同,Android不是用一个Dalvik虚拟机来同时执行多个Android应用程序,而是每个Android应用程序都用一个自有的Dalvik虚拟机来执行。

Dalvik虚拟机(Dalvik Virtual Machine)是一种基于寄存器的Java虚拟机。它是专为移动设备而设计的,它在编写时就已经设想用最少的内存资源来执行,以及支持同时执行多个虚拟机的特性。在设计方面,Dalvik虚拟机有许多地方参考了Java虚拟机,不过Dalvik虚拟机执行的中间码并非是Java虚拟机执行的Java字节码,同时也不直接执行Java的类,而是依靠转换工具dx将java字节码转换为Dalvik虚拟机执行时特有的dex(Dalvik Excutable)格式。(4)系统库

应用程序框架层是贴近于应用程序的软件组件服务,而更底层则是Android的库函数(c/c++),这一部分是应用程序框架的支撑,这一层主要包括以下功能。

·多媒体库:Android的媒体库函数是以PacketVideo公司的OpenCORE为基础发展的,该库函数可以播放、录制多种普遍常见的影音格式。

·S同时执行多个应用程序时,Surface Manager会负责管理器显示与存取操作间的互动,另外,也负责将2D绘图与3D绘图进行显示上的合成。

·WebKit:它是一套网页浏览器的软件引擎,该引擎的功能不仅可供Android内建的网页浏览器所调用,也可以提供内嵌性网页显示效果。

·SGL:提供Android在2D绘图方面的绘图引擎。

·OpenGL ES:Android是依据OpenGL ES 1.0 API标准来实现的其3D绘图函数库,该函数库可以用软件方式执行也可以用硬件加速方式执行,其中,3D软件光栅处理方面已进行高度优化。

·FreeType:提供点阵字、向量字的描绘显示。

·媒体框架:提供了对各种音、视频的支持。Android支持多种音频、视频、静态图像格式,如MPEG-4、H.264、MP3、AAC、ARM、JPG、PNG、GIF等。

·SQLite:SQLite是一套轻量级的数据库引擎,可供其他应用程序调用。

·Libc:提供了针对移动设备而优化了的C库。(5)Linux内核层

之前提到了Android平台的一个主要优点就是开放性,采用Linux内核则是Android平台开放性的基础。在Android平台中操作系统采用了Linux 2.6版的内核,它包括了显示驱动、摄像头驱动、Flash内存驱动、Binder(IPC)驱动,键盘驱动、Wifi驱动、Audio驱动和电源管理等。Linux内核层为我们在软件层和硬件层建立了一个抽象层,使得应用开发人员无需关心硬件细节。不过对手机开发商而言,如果想要Android平台运行到自己的硬件平台上就必须对Linux内核层进行修改,通常要做的工作就是为自己的硬件编写驱动程序。1.4本章小结

本章首先介绍了智能手机操作系统的分类及其优缺点,然后对Android操作系统及其发展和优越性进行介绍,最后讲述了Android如何通过系统架构来体现其优越性,使我们对手机操作系统及其Android有总体的了解。第2章搭建Android开发环境本章主要讲述如何搭建Android开发环境,包括获取SDK、Eclipse及进行Android Eclipse插件设置等。在搭建好开发环境后,如何创建一个Android程序,并对这个程序进行简单分析。2.1开发前的准备工作

工欲善其事,必先利其器。在开发Android应用之前,必须搭建开发环境,本节主要对开发Android应用程序所需要的软件进行详细介绍。(1)JDK6.0或JDK7.0

JDK的版本只要是5以上即可,本书采用JDK7.0,到java的官方网站http://www.oracle. com/technetwork/java/index.html下载即可获得。(2)Eclipse

使用MyEclipse也可以,但是由于MyEclipse是收费的并且插件较多影响运行速度,因此,不建议使用。Eclipse是一个开发源代码的、基于Java的可扩展的集成开发环境。Eclipse可以集成多种插件,已完成特定语言的开发。下载地址:http://www.eclipse.org/ downloads/。(3)Android SDK

Android SDK是Android应用程序开发工具包,类似于Java的JDK,可以到Android的官方网站下载,地址:http://developer.android.com/sdk/index.html。(4)Eclipse的插件ADT(Android Development Tools)

ADT是一个专门为Eclipse IDE设计的旨在提供一个强大的、集成的环境来建立Android应用程序的插件。ADT扩展了Eclipse的功能,可以快速建立Android项目,创建一个应用程序界面。它添加了基于Android框架API的组件,使用Android SDK工具调试所创建的应用程序,甚至导出签名(或未签名)APKs以分发应用程序。在Eclipse中强烈建议使用ADT进行开发,ADT提供了令人难以置信的提高开发应用程序的效率。下载地址和Android SDK相同。

准备好这些工具,就可以安装这些软件来搭建Android开发环境了。注意,以上提供的下载地址会由于官方的更新而产生变动,有时下载到的版本会不同,但下载方式相同,如遇问题可以参考官方的帮助文档。2.2搭建开发环境

在学习Android应用程序开发之前,我们假定读者已经有了一定的java开发基础,所以JDK的安装过程在此不再赘述。安装完JDK,配置完环境变量后,就可以进行下一步的安装了。2.2.1 Android SDK的安装

在指定地址下载可得到一个adt-bundle-windows-x86_64-20130522.zip文件,将该文件解压缩到任意路径,作者解压到D:\Program Files\。解压缩后在目录下得到一个android-sdk-windows文件夹,该文件夹下包含如下文件。

·add-ons:该目录下存放额外的附件软件。刚解压缩时为空。

·platforms:该目录下存放不同版本的Android版本。刚解压缩时为空。

·tools:该目录下存放了大量Android开发、调试工具。

·SDK Manager.exe:该程序就是Android SDK和AVD(Android虚拟设备)管理器,通过该工具可以管理Android SDK和AVD。在联网的情况下,运行SDK Manager.exe,即可看到如图2.1所示窗口。图2.1 Android SDK Manager

该图左边为可以下载的SDK平台列表,选中自己需要的版本,选中后,单击【install packages...】按钮,进入下载页面,下载所需时间与网速有关,请耐心等待。

安装完成后,可以看到在android-sdk-windows目录下增加了如下几个文件夹。

·docs:该文件夹下存放了Android SDK开发文件和API文档等。

·platform-tools:该文件夹下存放了和Android平台相关的工具。

·samples:该文件夹下存放了不同Android平台的示例程序。

为了可以在命令行窗口使用Android SDK的各种工具,建议将android-sdk-windows目录下的tools子目录、platform-tools子目录添加到系统的Path环境变量中,方法和设置JDK环境变量相同。2.2.2 Eclipse和ADT安装

Eclipse的安装比较简单,直接找到eclipse-java-juno-SR2-win32-x86_64文件,将其解压缩到指定的目录即可。打开解压缩后的文件夹,双击eclipse.exe即可运行Eclipse。

启动Eclipse,即可为其安装ADT插件。选择主菜单上的【Help】→【Install New Software】命令,出现如图2.2所示对话框,单击【Add】按钮,在对话框的name一栏中输入“ADT”,然后单击【Archive...】按钮,浏览和选择已经下载的ADT插件压缩文件的路径,如图2.3所示。图2.2 安装新插件窗口图2.3 定位ADT所在目录

单击【OK】按钮,会看到这个插件的信息,选中Developer Tools,然后单击【Next】按钮,出现如图2.4所示界面,耐心等待几分钟,出现如图2.5所示界面。图2.4 安装进度图2.5 所安装工具列表

一直单击【Next】按钮,直到出现如图2.6所示界面,选择【I accept the term of the license agreements】复选框,然后单击【Finish】按钮,等待安装完成,中间可能会出现警告信息,点击【OK】按钮继续即可,安装完成,会提示重启Eclipse,至此,ADT插件安装完毕。图2.6 许可协议

重启Eclipse后,会在工具条上看到多出了两个图标,这说明ADT安装成功了,然后还要指定Android SDK的路径。首次单击图标,弹出如图2.7所示界面。图2.7 定位SDK

Install new SDK下面选中第一项,然后在Target Location一栏定位到之前解压缩得到的android-sdk-windows文件,Use existing SDKs也定位到同样的位置,如图2.8所示。一直单击【Next】按钮,直到单击【Finish】按钮为止。至此,Android开发环境搭建完成,下面就可以创建一个Android项目来小试牛刀了!图2.8 使用已有的SDK2.2.3 创建和启动AVD(Android Virtual Device)

搭建好开发环境就可以创建Android应用程序了,当完成一个Android应用程序后需要测试一下程序的运行结果,而Android应用程序必须在3G手机上测试,如果没有支持Android平台的3G手机该怎么办呢?SDK为用户提供了方便,在SDK中集成了Android虚拟设备AVD,利用AVD可以创建各种模拟手机,利用模拟手机可以获得跟实际手机一样的体验。通常有两种方式管理AVD:一种是图形界面方式;另一种是命令行方式。

1.利用图形界面管理AVD

利用图形界面管理AVD,首先需要利用AVD管理工具创建一个AVD。打开Eclipse,单击工具栏上的图标,弹出如图2.9所示对话框。其次,单击右侧的【New】按钮,弹出如图2.10所示对话框,在此对话框中需要对创建的AVD属性进行相应的设置,其中重要属性含义极其取值如表2.1所示。最后,设置好属性值后,单击【OK】按钮,返回到图2.9所示的AVD管理器界面,在此列出了所有创建的AVD。选中一个AVD,单击管理器界面右侧的【Start】按钮,即可启动AVD,启动所耗时间根据机器配置有所差别。本书创建的AVD启动之后的界面如图2.11所示。图2.9 AVD管理器图2.10 创建新的AVD表2.1 AVD重要属性及其含义图2.11 启动完成的模拟器

2.通过命令行管理AVD

在命令行下管理AVD需要借助android命令(位于Android SDK安装目录的tools子目录下),如果直接执行android命令将会启动Android SDK和AVD管理器。此外,该命令还支持如下子命令。

·list:列出机器上所有已经安装的Android版本和AVD设备。

·list avd:列出机器上所有已经安装的AVD设备。

·list target:列出机器上所有已经安装的Android版本。

·Create avd:创建一个AVD设备。

·Move avd:移动或重命名一个AVD设备。

·Delete avd:删除一个AVD设备。

·Update avd:升级一个AVD设备使之复合新的SDK环境。

·Create project:创建一个新的Android项目。

·Update project:更新一个已有的Android项目。

·Create test-project:创建一个新的Android测试项目。

·Update test-project:更新一个已有的Android测试项目。

如果希望查看系统上已经安装的AVD设备,则在命令行窗口运行android list或android list avd命令即可,如图2.12所示。图2.12 运行android list avd命令后的结果

如果要创建一个新的AVD,可执行如下命令。

在上面的create avd子命令中,只有-n和-t选项是必须选的,其余都是可选的。如果不设置-p选项,创建的AVD设备默认保存在C:\Users\Administrator\.android目录下(以Windows 7为例)。下面使用命令创建一个名为test,运行Android4.0.3的模拟器。

上面的命令中8是Android 4.03的代号,执行命令,系统会提醒用户是否需要定制AVD硬件,可以选择yes或no,如果输入yes,即可开始定制AVD硬件的各种选项,定制完成后系统开始创建AVD设备,如果选择no,则直接开始创建AVD设备。创建后通过命令查看当前创建的所有AVD,如图2.13所示。图2.13 创建新的AVD设备并列出当前所有AVD设备

从图中可以看到,当前系统中有两个AVD设备(之前通过图形界面创建了一个名字为4.2的AVD设备),我们可以在C:\Users\Administrator\.android看到一个avd子目录,该子目录下包含了两个文件和两个文件夹。

·4.2.avd和4.2.ini:其中,4.2.avd目录下有一个userdata.img文件,它是AVD中用户数据的镜像。还有一个sdcard.img,它是该AVD所使用的虚拟SD卡的镜像。

·test.avd和test.ini:文件的含义同上。

当然也可以通过命令行方式启动AVD设备,在Android SDK安装目录的tools子目录下有一个emulator.exe文件,它就是Android模拟器。这个模拟器做的十分出色,几乎可以模拟真实手机的绝大部分功能,当然它只是模拟,不要指望用模拟器与你现实中的朋友发短信或者打电话。使用emulator.exe启动模拟器有两种方法。

·emulator -avd

·emulator -data镜像文件名称。2.3构建Android应用程序

完成了Android开发环境的设置及模拟器的创建和启动,相信大家很想体验一下Android开发的魔力所在。本节将带领大家逐步构建第一个Android应用程序。2.3.1 使用Eclipse创建Android应用程序

在Eclipse中安装ADT插件后,开发Android应用就会变得非常方便,因为Eclipse会自动完成许多工作,具体步骤如下。

打开Eclipse,选择主菜单中的【File】→【Project…】命令,弹出如图2.14所示窗口,单击Android选项,选中下面的Android Application Project,单击【Next】按钮,弹出如图2.15所示窗口,在此填写应用程序的基本属性信息,属性说明如表2.2所示。设置好属性值后,一直单击【Next】按钮,直到出现如图2.16所示界面。图2.14 选择项目类别图2.15 项目属性表2.2 项目属性表图2.16 创建Activity

ADT插件会自动为应用程序创建一个默认的Activity,在此填写Activity的名字及对应布局文件的名字,本例保持默认值不变。单击【Finish】按钮,第一个Android应用程序创建完成。

截止目前为止,虽然并没有写任何一行代码,但是该项目已经可以运行了,这是由于使用ADT生成的每一个项目本身就是一个可运行的项目。接下来就可以在模拟器上执行这个项目了。2.3.2 运行Android应用程序

运行Android项目是否需要首先启动模拟器呢?运行之前启动模拟器是可以的,这样运行Android项目之后会自动发布到已经启动的模拟器上。如果运行之前有多于一个的模拟器已经启动,那么,在运行时会有一个界面提示选择要发布的目标模拟器。如果运行之前没有启动任何模拟器,那么运行代码后,会自动启动一个默认的模拟器。运行Android项目最常用的方式如下。

在Eclipse的【Package explorer】视图中,右键单击新建的项目【HelloWorld】,选择【RunAs】后单击【Android Application】按钮即可运行项目。

项目发布的目标模拟器可以自行设定,右键单击项目,选择【Run As】,然后单击【Run Configuration】按钮,弹出如图2.17所示窗口。在窗口右边选择Target标签,指定运行的目标模拟器。HelloWorld项目运行的结果如图2.18所示。图2.17 运行时配置窗口图2.18 运行结果2.3.3 通过DDMS调试Android应用程序

当Android应用程序在模拟器上运行时,用户甚至看不到程序运行的过程,在控制台也看不到程序的输出,那么该如何调试Android应用呢?不用担心,Android已经为用户考虑好了这个问题。Android提供了一个DDMS调试环境,DDMS是Dalvik Debug Monitor Service的简称,是一个功能非常强大的调试环境。运行如下命令:monitor.bat即可看到如图2.19所示窗口,该窗口为Android调试器窗口。图2.19 DDMS调试窗口

DDMS窗口中有如下几个重要的面板。

·设备面板:该面板会列出当前所有运行的模拟器,并列出个模拟器内的所有进程信息。如果需要查看指定模拟器或指定进程信息,应先在该面板内选中指定模拟器或进程。

·信息输出面板:该面板位于DDMS窗口下方,相当于传统Java应用控制台,因此非常重要。

·线程跟踪面板:该面板可用于查看指定进程内所有正在执行的线程的状态。

·Heap内存跟踪面板:该面板可用于查看指定进程内堆内存的分配和回收信息。

·模拟器控制面板:该面板用于让模拟器拨打电话、发送短信等,还可以虚拟设置模拟器的位置信息等。

·文件管理对话框:可以在模拟器和本地文件之间进行导入和导出。

实际上,如果在Eclipse中安装了ADT插件,那么Eclipse就会将DDMS集成进来,在Eclipse中可以直接切换到DDMS视图(Perspective)。单击Eclipse中右上角的(Open Perspective按钮,弹出如图2.20所示窗口。在弹出窗口中选择DDMS就可以打开DDMS调试窗口。图2.20 Open Perspective窗口

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

下载完整电子书

若在网站上没有找合适的书籍,可联系网站客服获取,各类电子版图书资料皆有。

客服微信:xzh432

登入/注册
卧槽~你还有脸回来
没有账号? 忘记密码?