安卓编程指南及物联网开发实践(txt+pdf+epub+mobi电子书下载)


发布时间:2020-07-16 14:55:10

点击下载

作者:陈志德

出版社:电子工业出版社

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

安卓编程指南及物联网开发实践

安卓编程指南及物联网开发实践试读:

前言

Android是一个免费、开源的移动端平台,在Google和Android手机联盟的大力推广下, Android得到了全球开发者的极大关注。目前Android应用程序开发的相关教材已经很多,但鲜有书籍涉及Android的物联网开发。本书从初学者的角度出发,通过通俗易懂的语言、丰富多彩的实例介绍了Android程序开发中的各方面技术,同时利用Android系统的一些功能特性进行物联网开发实践。

本书注重对读者实际动手能力的指导,循序渐进地讲解Android应用程序开发的基本知识。内容包括搭建Android应用开发环境、Android开发技术基础、Android的网络编程、Android在物联网中的应用等。

本书各章节的主要内容如下:

第1章介绍了Android系统框架、Android开发环境的搭建及创建第一个Android应用程序。

第2、3章介绍了Android应用程序的用户界面设计及常用的界面组件,包括几种界面布局、Android的事件、常用控件、菜单及信息提示组件。

第4~7章介绍了Android开发中的四大组件:Activity组件、Service组件、BroadCastReceiver组件、ContentProvider组件。同时介绍了Intent实现组件间的数据传递及Android应用程序的数据存储。

第8章介绍了Android的网络编程,即通过HTTP协议的POST方法和GET方法实现网络数据传递,同时介绍了TCP/IP协议中的Socket编程。

第9章介绍了Android手机中的一些特性功能,如传感器的原理及开发应用,摄像头实现拍照及录制视频、录音,GPS定位,二维码的生成及扫描。

第10章通过设备巡检案例介绍了物联网中的Android应用开发实践。

本书提供了大量的实例源代码供读者参考,指导读者快速、无障碍地学通Android开发技术。通过这些实例,读者可以快速地理解每个知识点的内容。本书适合作为高等院校计算机及相关专业的教学用书,也可以作为Android开发初学者的自学教材和参考手册。

由于编者水平有限,书中难免有不足之处,恳请读者批评指正。编者第1章 Android开发基础1.1 Android系统简介

Android一词的本义是指“机器人”,同时也是Google于2007年11月宣布的基于Linux平台的开源手机操作系统的名称。它是一种基于Linux的自由及开放源代码的操作系统,主要应用于移动设备,如智能手机和平板电脑,由Google和开放手机联盟领导及开发。1.1.1 Android系统的发展

Android操作系统最初由Andy Rubin开发,主要支持手机。Google于2005年收购注资,对其进行了精简和优化。2007年11月,Google与84家硬件制造商、软件开发商及电信运营商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。2008年,在GoogleI/O大会上,Google提出了Android HAL架构图。同年8月18日,Android 获得了美国联邦通信委员会(FCC)的批准。2008年9月, Google正式发布了Android 1.0系统,这也是Android 系统最早的版本。同时,美国运营商T-Mobile USA在纽约正式发布第一款Google手机T-Mobile G1,如图1-1(左)所示。该款手机为中国台湾宏达电子代工制造,是世界上第一部使用Android操作系统的手机,它支持WCDMA/HSPA网络,理论下载速率为7.2Mbit/s,并支持Wi-Fi。到了2010年1月,Google开始发布自家品牌手机Nexus One,该款手机使用的操作系统是Android 2.1,如图1-1(右)所示。图1-1

随着移动互联网的发展,Android逐渐扩展到平板电脑及物联网等领域。Android系统的发展为何能够如此迅速?首先是因为它具备4个主要的特点。(1)无边界的应用程序。(2)应用程序可以并行运行。(3)应用程序可以轻松地嵌入网络。(4)应用程序是在平等条件下创建的。

正是由于Android系统具备了这些特点,使得它受到了全球移动设备厂商和开发者的热捧。在物联网领域,国外媒体的分析文章称Android系统正成为标准的“物联网”操作系统。1.1.2 Android系统的框架

Android 平台的设计使得其比之前的平台具有更强的容错能力。Android 手机设备运行在Linux操作系统下,这使得其上运行的Android应用程序具有更强的安全性。

Android是一个移动设备的开发平台,按照其自下而上的软件层次结构,可以分成4个层次:Linux内核层、中间件层、应用程序框架层、应用程序层。4层的具体内容如图1-2所示。图1-2

这4层结构的具体描述如下。1.应用程序层

图1-2中最上层显示的应用程序(如E-mail客户端、SMS短消息程序、电话拨号程序、图片浏览器、Web浏览器等),都是用Java语言编写的,并且这些应用程序都可以被其他应用程序所替换,这点不同于其他手机操作系统固化在系统内部的系统软件,更加灵活和个性化。2.应用程序框架层

应用程序框架层是从事Android开发的基础,很多核心应用程序也是通过这一层来实现其核心功能的。该层简化了组件的重用,开发人员可以直接使用这些框架来开发自己的应用,但是必须遵守其框架的开发规则。

Android 提供了如下一些框架。● 活动管理器(Activity Manager):管理各个应用程序生命周期及

常用的导航回退功能。● 窗口管理器(Window Manager):管理所有的窗口程序。● 内容提供器(Content Provider):使得不同应用程序之间存取或

者分享数据。● 视图系统(View System):构建应用程序的基本组件。● 包管理器(Package Manager): Android系统内的程序管理。● 电话管理器(Telephony Manager):管理所有的移动设备功

能。● 资源管理器(Resource Manager):提供应用程序使用的各种非

代码资源,如本地化字符串、图片、布局文件、颜色文件等。● 位置管理器(Location Manager):提供位置服务。● 通告管理器(Notification Manager):使得应用程序可以在状态

栏中显示自定义的提示信息。3.中间件层

从图1-2中可以看出,Android的中间件层由两部分构成:函数库和Android运行时。

1)函数库

Android提供了一个C/C++库的集合,用于支持开发人员使用的各个组件。以下列出一些核心的函数库。● 表面管理器(Surface Manager):执行多个应用程序时,表面管

理器负责管理显示与存取操作之间的互动,同时负责2D绘图与

3D绘图进行显示合成。● 多媒体库(Media Framework):基于PacketVideo OpenCore;

支持多种常用的音频、视频格式录制和回放,并支持图片。● SQLite:小型的关系型数据库引擎。● OpenGLRES:根据OpenGL ES 1.0 API标准实现的3D绘图函数

库。● FreeType:提供点阵字与向量字的描绘与显示。● WebKit:一套网页浏览器的软件引擎。● SGL:底层的2D图形渲染引擎。● SSL:位于TCP/IP协议与各种应用层协议之间,为数据通信提供

支持。● 系统C库(libc):从BSD继承而来的标准C系统函数库,提供

Linux系统中底层应用程序的开发接口。

2)Android运行时

Android应用程序采用Java语言编写,程序在Android运行时中执行。Android的运行时由核心库和Dalvik虚拟机两部分构成。● 核心库:提供Android系统的特有函数功能和Java语言函数功

能。● Dalvik虚拟机:经过优化的多实例虚拟机,基于寄存器架构设计,

实现基于Linux内核的线程管理和底层内存管理;采用专用的

Dalvik可执行格式(.dex),该格式适合内存和处理器速度受限的

系统。4.Linux内核层

Android核心系统服务(如安全机制、内存管理、进程管理、网络协议栈及驱动模型)基于Linux 2.6内核。Linux内核同时也作为硬件和其他软件堆层之间的一个抽象隔离层。Android的Linux内核层包含的主要驱动有:● 显示驱动。● 键盘驱动。● Flash内存驱动。● 照相机驱动。● 蓝牙驱动。● Wi-Fi驱动。● Binder IPC驱动。● Power Management。

同时,Android 系统也对Linux内核进行了增强,增加了一些面向移动计算机的特有功能,如低内存管理器(Low Memory Killer,LMK)、匿名共享内存(Ashmen),以及轻量级的进程间通信Binder机制等。这些增强的内核不但继承了Linux的内核安全机制,也进一步提升了内存管理、进程间通信等方面的安全性。1.2 搭建开发环境

1.1节已经对Android系统的发展及系统框架进行了介绍,本节将讲解如何配置Android 的开发环境。首先介绍配置开发环境所需的开发包和工具,以及如何获取它们;然后介绍如何安装与配置这些开发包。1.2.1 开发环境搭建准备“工欲善其事,必先利其器”,在搭建Android开发环境之前,我们必须把配置所需的工具准备好。开发环境的搭建需要的工具包括:Java开发工具包(Java Development Kit,JDK)、Eclipse开发环境和 Android SDK。这些开发工具都可以从网络上免费下载。

在下载之前,首先要了解Android对操作系统的要求。应用程序可以在以下操作系统上进行开发:(1)Windows XP 及其以上版本。(2)Mac OS。(3)Linux。

本书将以Windows 7 32位操作系统为例进行讲解。同时,为了能够顺利地配置Android应用程序开发环境,需要约2GB的磁盘空间用于存放开发所需的JDK、Eclipse、Android SDK及相关的插件。为了方便初学者学习Android,目前Android开发者网站上提供了一种带有ADT插件的Eclipse。本书所使用的开发环境为带有ADT插件的Eclipse开发环境adt-bundle-windows-x86。1.2.2 开发环境配置1.下载和安装JDK

Android 以Java作为开发语言,JDK是进行Java开发时所必需的开发包,它包含了Java运行环境(Java Runtime Environment,JRE),以及编译、测试、文档生成工具。正确搭建Java开发环境是实现Java开发的必要条件。这里我们开始JDK的下载与安装配置。

在Oracle网站上下载JDK,登录网址http://www.oracle.com/technetwork/java/javase/downloads/index.html,即可看到如图1-3所示的页面。图1-3

找到1.7版本的JDK,如图1-4所示。单击页面右侧的DOWNLOAD按钮,页面跳转到图1-5,选择Windows x86版本下载jdk-7u67-windows-i586.exe文件,注意选择Accept License Agreement单选按钮。图1-4图1-5

JDK下载完毕后,开始对其进行安装,如图1-6和图1-7所示。在图1-7中可单击“更改”按钮对安装路径进行更改。图1-6图1-7

单击“下一步”按钮进入安装环节,如图1-8~图1-11所示。图1-8图1-9图1-10图1-11

安装期间,还包含对JRE的安装,其过程如图1-12和图1-13所示。图1-12图1-13

全部安装成功后,如图1-14所示,单击“关闭”按钮,结束安装。图1-14

JDK安装完成后,对已安装的Java环境进行测试。选择“开始→所有程序→附件→命令提示符”命令,打开“命令提示符”窗口,输入“java -version”并按Enter键,如果出现图1-15所示的界面,即表示JDK安装成功。图1-152.安装Eclipse

下载带有ADT的Eclipse可以登录网址http://developer.android.com/sdk/index.html,如图1-16所示。图1-16

在图1-16中单击Download Eclipse ADT按钮,即可跳转到下一页面,勾选阅读条款与协议,并选择与开发所用计算机的操作系统位数相匹配的版本,即可下载adt-bundle-windows-x86-20130522.zip文件。

将已下载好的文件解压,并找到eclipse.exe图标,如图1-17所示,双击该图标即可开发Android应用。图1-17

第一次打开Eclipse时,需要对开发环境配置工作空间的路径,如图1-18所示。单击Browse按钮,可更改工作空间路径。图1-18

单击OK按钮,最终会打开如图1-19所示的界面,即代表Eclipse已经打开。图1-191.3 Android应用程序的构成

通过1.2节的操作,我们已经对Android的开发环境做好了相关的配置。现在我们要对Android 的应用程序构成进行更深入的了解。Android的应用程序没有像Java等程序的main方法,它由一系列组件构成,而这些组件之间是可以互相调用、互相协调、相互独立的模块。一般一个Android应用程序都是由多个组件构成的,这些组件大致可以分为4种类型:Activity(活动)、BroadcastReceiver(广播接收器)、Service(服务)、ContentProvider(内容提供者),它们被称为“Android应用程序的四大组件”。本节将对这4种类型的组件进行简单的介绍,本书将会在后续章节对这4种类型的组件进行更为深入、详细的介绍。1.3.1 四大组件之Activity

Activity是Android组件中最基本也是最常用的组件之一。它提供了可视化的用户界面,让用户可以与Android应用程序交互,并接受与用户交互产生的事件。在Android应用中,一个Activity就是一个单独的屏幕,犹如一个网页页面。它是由视图(View)控件组成的活动接口,并对事件作出响应。Android中有丰富的视图控件可供开发者添加到Activity中,如Button、EditText、ListView等,不仅增强了界面的视觉效果,而且提供了更丰富的交互效果。

Android应用程序中一般包含一个或者一个以上的Activity,当启动应用程序时,一般会有一个Activity呈现,该Activity就像是程序的入口。Activity在屏幕上的表现形式一般是全屏窗体,也可以是非全屏的悬浮框或者对话框。

当从一个Activity切换到另一个Activity时,Android是通过Activity栈的方式来进行管理的。从应用程序打开到当前所有的Activity都被压入到Activity栈中,处于交互状态的Activity总是栈的顶端。当交互状态的Activity因为异常或者其他原因被销毁时,处于栈第二层的Activity将被激活,成为栈顶(该Activity处于交互状态)。1.3.2 四大组件之BroadcastReceiver

BroadcastReceiver 就是“广播接收器”的意思。顾名思义,它就是用来接收来自系统或者应用的广播。在Android开发中,广播接收器是用来接收相应广播消息的组件,它是不可见的,没有用户界面。但是,它可以通知(如发出声音、产生振动或者闪动背景灯等)用户收到消息。

在 Android 里面有各种各样的广播,比如电池的使用状态、电话的接收和短信的接收都会产生一个广播。应用程序开发者也可以监听这些广播并作出程序逻辑的处理。应用程序不仅可以通过广播接收器接收到来自系统或者应用程序的广播,也可以向应用程序发出广播。一个应用可以有多个广播接收器,同时一个应用也可以发出多个广播。

广播接收器是如何接收广播的呢?当系统收到一个意图后,会根据意图中的属性去匹配系统中的意图过滤器,一旦找到匹配的广播接收器,则将它启动接收广播消息。1.3.3 四大组件之Service

Service是一个能够长期运行在后台执行耗时操作,并且没有用户界面的应用组件。其他的应用组件能够启动Service,并且当用户切换到其他应用时,Service将持续在后台运行(例如,在播放MP3的时候打开电子书程序,播放器需要在后台继续播放,这时候就需要Service组件实现播放器在后台继续运行)。

Service运行于当前进程的主线程中,而不是单独创建一个线程。一些阻塞UI(User Interface,用户界面)的操作,比如耗时的操作都可能会引发ANR(Application Not Responding)警告。因此,需要在Service中开启一个新的线程去完成这些操作。1.3.4 四大组件之ContentProvider

ContentProvider是Android系统提供的一种标准的共享数据的机制。Android应用既能够将它们的私有数据保存在文件和SQLite数据库中,也可以将这些数据存放在网络上。当与其他的应用共享私有数据时,ContentProvider就可以发挥作用了。

在Android系统中,每个应用都运行在各自的进程中,数据库只能被它的创建者所使用,其他应用程序是无法访问的。ContentProvider正是用来解决其他应用程序无法访问本应用程序的私有数据的问题。它是一种特殊的存储数据的类型,提供了一套标准的方法接口用来获取和操作数据。Android系统内部也提供了一些内置的ContentProvider,能够为应用程序提供重要的数据信息(如音频、视频、图片和电话记录等)。

应用程序可以通过ContentProvider共享私有数据,其他应用可以通过ContentResolver确定其调用的ContentProvider,然后采用ContentResolver 提供的方法来获取数据。1.4 第一个Android项目

通过前面几个小节的学习,我们了解了Android的一些基本知识。现在我们通过一个简单的应用程序进行讲解。无论是学习C++,还是学习Java或者其他开发语言,总是以编写“Hello World”程序作为入门的第一课。因此,本节将通过Eclipse 的集成开发环境建立第一个Android项目——HelloWorld,并对该工程的项目文件进行解析。1.4.1 创建Android项目

首先启动Eclipse,如图1-19所示。然后选择File→New→Android Application→Project命令,这时将创建一个名为HelloWorld的项目,如图1-20所示。在Application Name文本框中输入应用程序名称,而在Project Name与Package Name文本框中将根据应用程序名称自动生成各自的名称。对于Minimum Required SDK、Target SDK、Compile With、Theme 4个下拉列表框,初学者可以选择默认选项。各项内容的具体含义如下。图1-20(1)Application Name(应用名):Android程序在手机中显示的名称,当程序运行的时候,该名称会显示在手机的顶部。(2)Project Name(项目名):项目在开发环境中的项目资料文件夹的名称。(3)Package Name(包名):包的命名空间,需要遵循Java包的命名方法。一般按照反写域名的方式保证命名的唯一性。(4)Minimum Required SDK(最低版本的SDK):Android程序能够运行的最低的API等级,即Android系统的API低于程序版本的将无法运行该程序。(5)Target SDK(目标SDK):程序的目标SDK版本。(6)Compile With(编译为):程序的编译SDK版本,一般选择默认或者与Target SDK相同。(7)Theme(主题):程序的主题,一般选择默认。

单击Next按钮,将会弹出一个窗口,通过该窗口可以对工程进行设置,这里就不做详细介绍了。后续弹窗都选择默认设置,单击Next按钮即可,直到出现Finish按钮。在确定完成之后需要等待数秒,会出现如图1-21所示的界面。图1-21

从图1-21中可以看出,开发环境中已经创建好HelloWorld项目,且自动打开了activity_main.xml布局文件。在布局文件上有一个TextView,且会自动填充内容“Hello World”。

单击工作区间下端的activity_main.xml选项卡,即可显示该布局文件的代码。其中的代码内容如下: 01 10 14

在开发过程中,可以在此文件内通过代码实现界面的设计工作;也可以切换到Graphical Layout 选项卡,直接把左边的控件拉到界面上,从而实现程序界面的设计工作。1.4.2 Android工程文件解析

在Eclipse中创建的Android 项目名称为HelloWorld,它的目录与文件结构如图1-22所示。这些目录和文件是自动生成的,它们有其固有的作用,有的允许修改,有的则不能进行修改,了解这些文件和目录,对于Android应用程序的开发有着非常重要的意义。图1-22

在Eclipse的Package Explore区域中,展开HelloWorld项目目录。该目录下包含6个子目录(src、gen、assets、bin、libs、res),两个库文件目录(Android 4.2.2和Android Private Libraries),以及4个工程文件(AndroidManifest.xml、ic_launcher-web.png、proguard-project.txt、project.properties)。(1)src 文件目录:主要用于存放Java源文件,功能与Java项目中的src文件目录一样,默认会自动创建一个MainActivity.java文件。(2)gen文件目录:ADT插件自动创建的两个文件R.java和BuildConfig.java都存放在该目录下。其中R.java文件存放res文件夹下对应资源的ID,该ID是在编译器编译的时候自动生成的,开发者一般不对其进行修改;BuildConfig.java文件的作用是检查代码,不断运行调试。(3)assets 文件目录:用来存放原始格式的文件,如音频等二进制格式文件。此目录下的文件不会在R文件中生成资源ID,访问时需要AssetManager类以字节流的方式来读取,默认为空。(4)bin文件目录:输出文件夹,生成APK文件等。(5)libs 文件目录:存放项目依赖的第三方库文件,如JAR库文件等。(6)res 文件目录:资源目录,主要存放Android程序中所有的图像、颜色、风格、主题、界面布局、字符串等资源文件。(7)AndroidManifest.xml:每个应用程序的根目录里都会有这个功能清单文件,该文件给Android系统提供了关于这个应用程序的基本信息。(8)project.properties:环境文件,记录项目中所需的环境信息,比如Android的版本等。

通过以上的学习,我们已经对Android项目中的目录与文件有了简单的认识。以下将对res文件目录下的内容、R文件、AndroidManifest.xml文件,以及src目录下的MainActivity.java 文件进行更详细的讲解。1.res文件目录

从图1-22中可知,在res文件目录下还有很多的文件目录,其中drawable-*dpi文件夹用于存放图标,图标按照分辨率的高低存放在不同的目录中:drawable-hdpi文件夹存放的是高分辨率的图标;drawable-ldpi文件夹存放的是低分辨率的图标;drawable-xhdpi文件夹存放的是超高分辨率的图标。

layout文件目录下存放与用户界面相关的文件,代码如activity_main.xml文件所示。

menu文件目录下存放与菜单的布局样式相关的文件,本例中的菜单文件是自动生成的,代码如下: 1

2 7

values文件目录下存放存储值的文件,这些文件保存了要创建资源的描述,而不是资源本身。XML元素类型控制这些资源应该放在R文件中的位置。本例中自动创建的values文件有3个。● dimens.xml:定义尺寸值(dimension value)。● strings.xml:定义字符串(string)值。● styles.xml:定义样式(style)对象。2.R.java文件

R文件中默认有attr、dimen、drawable、id、layout、menu、string、style等静态内部类,每个类都对应于一种类型的资源。 01 public final class R { 02 public static final class attr { 03 } 04 public static final class dimen { 05 public static final int activity_horizontal_margin=0x7f040000; 06 public static final int activity_vertical_margin=0x7f040001; 07 } 08 public static final class drawable { 09 public static final int ic_launcher=0x7f020000; 10 } 11 public static final class id { 12 public static final int action_settings=0x7f080003; 13 } 14 public static final class layout { 15 public static final int activity_main=0x7f030000; 16 } 17 public static final class menu { 18 public static final int main=0x7f070000; 19 } 20 public static final class string { 21 public static final int action_settings=0x7f050001; 22 public static final int app_name=0x7f050000; 23 public static final int hello_world=0x7f050002; 24 } 25 public static final class style { 26 public static final int AppBaseTheme=0x7f060000; 27 public static final int AppTheme=0x7f060001; 28 } 29 }

当开发者在res文件目录下的任何一个子目录中添加相应类型的文件之后,ADT会在R.java文件中相应的匿名内部类中自动生成一条静态int类型的常量,对添加的文件进行索引。在strings.xml文件中添加内容“福建师范大学”,代码如下: 1 2 HelloWorld 3 Settings 4 Hello world! 5 福建师范大学 6

在R文件的String静态内部类中多了一条静态int类型的常量,如下: 1 public static final int FJNU=0x7f050003;3.AndroidManifest.xml文件

每个Android工程都会有一个AndroidManifest.xml文件,该文件是Android工程中的一个全局配置文件。AndroidManifest.xml文件的代码如下: 01 02 06 09 14 17 18 19 20 21 22 23

1.3节介绍的四大组件(Activity、BroadcastReceiver、Service、ContentProvider)需要在该文件中进行配置。在应用程序开发过程中,如果用到系统内置的一些应用(如电话服务、互联网服务、短信服务、GPS服务等),就需要在该文件中声明使用权限。Manifest根元素下的4个属性及其描述如表1-1所示。下面将对AndroidManifest.xml文件进行解析。表1-1项说明定义了Android的命名空间,使得Android中的各Xmlns:android种标准属性能在文件中使用,提供大部分元素的数据package定义了应用程序的包名称定义了应用程序的版本号,版本号越大表示版android:versionCode本越新android:定义了应用程序的版本名称versionName

uses-sdk中的两个属性指明了SDK的最低版本和当前版本。application子元素中的4个属性分别指定是否允许备份、图标、标题和主题。下面是application子元素中Activity组件的声明,Activity中的两个属性定义了Activity的名称和标题。同理,其他3种类型的组件也在application中声明,它们与Activity属于同一个级别。

Activity中的有两个子元素,其中指明了该Activity是程序的入口;则表示加载程序时运行。4.src目录下的MainActivity.java文件

在创建项目的过程中,根据向导提示,我们创建了MainActivity. java文件,其代码如下: 01 package cn.edu.fjnu.helloworld; 02 03 import android.os.Bundle; 04 import android.app.Activity; 05 import android.view.Menu; 06 public class MainActivity extends Activity { 07 08 @Override 09 protected void onCreate(Bundle savedInstanceState) { 10 super.onCreate(savedInstanceState); 11 setContentView(R.layout.activity_main); 12 } 13 14 @Override 15 public boolean onCreateOptionsMenu(Menu menu) { 16 // Inflate the menu; this adds items to the action bar if it is present. 17 getMenuInflater().inflate(R.menu.main, menu); 18 return true; 19 } 20 21 }

在上述代码中,第3~5行表示从Android的SDK中导入需要的包;第6行声明了MainActivity继承Activity类;第9行重写了Activity类的onCreate()方法,该方法一般用于初始化界面;第10行将Activity的状态信息savedInstanceState作为参数传递给父类的onCreate()方法;第11行通过setContentView()方法设置了需要显示在MainActivity上的界面,该界面是通过res/layout/activity_main.xml文件(它的ID是R.layout.activity_main)布局的;第15行重写了Activity的onCreateOptionsMenu()方法,该方法将产生一个选项菜单;第17行表示通过res/menu/main.xml文件(它的ID为R.menu.main)生成一个菜单布局。1.4.3 生成Android应用程序

通过前面的小节我们已经学习了如何创建一个Android项目,同时也了解了Android工程项目的结构。开发过程中运行Android程序的方式有两种,一种是运行在Android虚拟机上,一种是运行在真实的手机上。1.运行在虚拟机上

首先要建立Android的虚拟设备(Android Virtual Device,AVD)。单击Eclipse工具栏上的Android Virtual Device Manager图标,弹出如图1-23所示的对话框。图1-23

单击New按钮,打开AVD属性设置窗口,并设置相应属性,如图1-24所示。图1-24

创建成功后,单击OK按钮,在Android Virtual Device Manager界面中将会列出所创建的设备,如图1-25所示。图1-25

选中相应要启动的设备,并单击Start按钮,弹出Launch Options对话框,如图1-26所示。单击Launch按钮,启动设备。启动过程需要一定的等待时间,如图1-27所示。图1-26图1-27

启动成功后出现如图1-28所示的界面。图1-28

选中HelloWorld工程,单击鼠标右键,在弹出的快捷菜单中选择Run As→Android Application命令。因当前只开启了一台虚拟设备,并且没有连接手机,因此默认将程序部署到已开启的这台设备上。安装过程中,控制台上会输出相应信息,如图1-29所示,则表示安装成功。在虚拟机上的运行效果如图1-30所示。

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

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载