第1章 Android快速入门
(教学录像:1小时19分钟)
随着移动设备的不断普及与发展,相关软件的开发也越来越受到程序员的青睐。目前,移动开发领域以Android的发展最为迅猛,在短短几年时间里,就撼动了诺基亚Symbian的霸主地位。通过其在线市场,程序员不仅能向全世界贡献自己的程序,而且可以通过销售获得不菲的收入。作为Android开发的起步,本章重点介绍了如何搭建Android开发环境以及如何开发Android程序。
通过阅读本章,您可以:
★ 了解Android平台特性及架构
★ 掌握搭建Android开发环境的方法
★ 了解Android模拟器的使用
★ 掌握使用Eclipse开发Android应用的方法
★ 了解Android项目的目录结构
★ 了解Android项目的运行与调试
1.1 什么是Android
教学录像:光盘\TM\lx\1\什么是Android.exe
Android是专门为移动设备开发的平台,其中包含操作系统、中间件和核心应用等。Android最早由Andy Rubin创办,于2005年被Google收购。2007年11月5日,Google正式发布Android平台。在2010年底,Android已经超越称霸10年的诺基亚Symbian系统,成为全球最受欢迎的智能手机平台。采用Android平台的手机厂商主要包括HTC、Samsung、Motorola、LG、Sony Ericsson等。
1.1.1 平台特性
Android平台具有如下特性:
[√]允许重用和替换组件的应用程序框架。
[√]专门为移动设备优化的Dalvik虚拟机。
[√]基于开源引擎WebKit的内置浏览器。
[√]自定义的2D图形库提供了最佳的图形效果,此外还支持基于OpenGL ES 1.0规范的3D效果(需要硬件支持)。
[√]支持数据结构化存储的SQLite。
[√]支持常见的音频、视频和图片格式(如MPEG4、MP3、AAC、AMR、JPG、PNG、GIF)。
[√]GSM电话(需要硬件支持)。
[√]蓝牙、EDGE、3G和WiFi(需要硬件支持)。
[√]摄像头、GPS、指南针和加速计(需要硬件支持)。
[√]包括设备模拟器、调试工具、优化工具和Eclipse开发插件等丰富的开发环境。
1.1.2 平台架构
Android平台主要包括Applications、Application Framework、Libraries、Android Runtime和Linux Kernel几部分,如图1.1所示。
图1.1 Android平台架构
- Applications(应用程序)
Android提供了一组应用程序,包括Email客户端、SMS程序、日历、地图、浏览器、通讯录等。这部分程序均使用Java语言编写。本书将重点讲解如何开发自己的应用程序。
- Application Framework(应用程序框架)
无论是Android提供的应用程序还是开发人员自己编写的应用程序,都需要使用Application Framework(应用程序框架)。通过使用Application Framework,不仅可以大幅度简化代码的编写,而且可以提高程序的复用性。
- Libraries(库)
Android提供了一组C/C++库,它们为平台的不同组件所使用。开发人员通过Application Framework来使用这些库所提供的不同功能。
- Android Runtime(Android运行时)
Android运行时包括核心库和Dalvik虚拟机两部分。核心库中提供了Java语言核心库中包含的大部分功能,虚拟机负责运行程序。Dalvik虚拟机专门针对移动设备进行编写,不仅效率更高,而且占用更少的内存。
- Linux Kernel(Linux内核)
Android平台使用Linux 2.6版内核提供的核心系统服务,包括安全性、内存管理、进程管理等。
1.1.3 Android市场
Android市场是Google公司为Android平台提供的在线应用商店,Android平台用户可以在该市场中浏览、下载和购买第三方人员开发的应用程序。
对于开发人员,有两种获利方式:一种方式是销售软件,开发人员可以获得该应用销售额的70%,其余30%作为其他费用;另一种方式是加广告,即将自己的软件定为免费软件,通过增加广告链接,靠点击率获利。
说明:在上传软件之前,需要在Android市场进行注册并交纳25美元的费用。
1.2 搭建Android开发环境
教学录像:光盘\TM\lx\1\搭建Android开发环境.exe
1.2.1 系统需求
本节讲述使用Android SDK进行开发所必需的硬件和软件要求。对于硬件方面,要求CPU和内存尽量大。Android SDK全部下载大概需要占用4GB硬盘空间。由于开发过程中需要反复重启模拟器,而每次重启都会消耗几分钟的时间(视机器配置而定),因此使用高配置的机器能节约不少时间。
对于软件需求,这里重点介绍两个方面:操作系统和开发环境。
支持Android SDK的操作系统及其要求如表1.1所示。
表1.1 Android SDK对操作系统的要求
对于开发环境,除了常用的Eclipse IDE,还可以使用Intelli J IDEA进行开发。对于Eclipse,要求其版本号为3.5或更新,具体版本选择Eclipse IDE for Java Developers即可。此外,还需要安装JDK 5或者JDK 6,以及Android Development Tools插件(简称ADT插件)。
1.2.2 JDK的下载
由于Sun公司已经被Oracle收购,因此JDK可以在Oracle公司的官方网站(http://www.oracle.com/cn/index.html)上下载。下面以目前最新的版本JDK 6 Update 30为例,介绍下载JDK的方法,具体步骤如下。
(1)打开浏览器,在地址栏中输入http://www.oracle.com/index.html,进入Oracle的官方主页,如图1.2所示。
图1.2 Oracle官方主页
(2)选择Downloads选项卡,选择Java for Developers,在跳转的页面中滚动到如图1.3所示的位置,单击JDK下方的Download按钮。
图1.3 Java开发资源下载页面
(3)在新页面中,同意协议并根据计算机硬件和系统选择适当的版本进行下载,如图1.4所示。
图1.4 JDK下载页面
1.2.3 JDK的安装
下载完适合自己系统的JDK版本后,就可以进行安装了。下面以Windows系统为例,讲解JDK的安装步骤。
(1)双击刚刚下载的JDK程序,弹出如图1.5所示的JDK安装向导对话框。单击“下一步”按钮。
图1.5 JDK安装向导对话框
(2)在打开的如图1.6所示的对话框中,单击“更改”按钮,将安装位置修改为C:\Java\jdk1.6.0_30\,如图1.7所示。
![]() | ![]() |
图1.6 JDK安装功能及位置选择对话框(一) | 图1.7 JDK安装功能及位置选择对话框(二) |
注意:在Windows系统中,软件默认安装到Program Files文件夹中,该路径中包含一个空格,通常建议将JDK安装到没有空格的路径中。
(3)单击“下一步”按钮,开始安装,如图1.8所示。
图1.8 JDK安装进度窗口
注意:安装JDK时,请不要同时运行其他安装程序,以免出现冲突。
(4)弹出如图1.9所示的JRE安装路径选择对话框,单击“更改”按钮,将安装路径修改为C:\Java\ jre6\,如图1.10所示。
![]() | ![]() |
图1.9 JRE安装路径选择对话框(一) | 图1.10 JRE安装路径选择对话框(二) |
(5)单击“下一步”按钮进行安装,如图1.11所示。
图1.11 JRE安装进度窗口
(6)安装完成后,弹出如图1.12所示的对话框。
图1.12 JDK安装完成对话框
1.2.4 Android SDK的下载与安装
学习开发Android应用程序,首先需要下载并安装Android SDK。在Android SDK中,包含模拟器、教程、API文档和示例代码等内容。下面详细介绍下载与安装Android SDK的步骤。
(1)打开浏览器,在地址栏中输入http://developer.android.com/index.html,进入Android开发者官方主页,如图1.13所示。
图1.13 Android开发者主页
(2)选择SDK选项卡,单击installer_r16-windows.exe链接下载,如图1.14所示。
图1.14 Android SDK下载页面
注意:开始安装之前,需确保计算机中已经安装了JDK。
(3)双击下载的程序,弹出如图1.15所示的安装向导窗口。
图1.15 Android SDK安装向导窗口
(4)单击Next按钮。如果已经正确安装JDK,则显示如图1.16所示的界面。
图1.16 检测JDK安装情况的窗口
(5)在图1.16中单击Next按钮,将显示Android SDK安装路径选择窗口,如图1.17所示。将安装路径修改为C:\Java\android-sdk,如图1.18所示。
![]() | ![]() |
图1.17 Android SDK安装路径选择窗口(一) | 图1.18 Android SDK安装路径选择窗口(二) |
(6)在图1.18中,单击Next按钮。此时询问是否在开始菜单中创建快捷方式,如图1.19所示。单击Install按钮开始安装。
图1.19 创建开始菜单窗口
(7)安装完成后,显示如图1.20所示窗口。
图1.20 安装完成窗口
(8)在图1.20中,单击Finish按钮,启动SDK管理工具。此时会自动联网搜索可以下载的软件包,如图1.21所示。
图1.21 获取可以下载的软件包
(9)为了便于日后在各个不同平台调试,在搜索完成后选择安装全部的软件包,如图1.22所示。
图1.22 选择需要安装的软件包
(10)在图1.22中,单击Install 47 packages按钮,显示如图1.23所示的窗口。
图1.23 确认需要安装的软件包
(11)单击Install按钮,进行安装。
说明:下载过程比较费时,请读者耐心等待。
自从Android平台发布以来,大约每半年有一次重要更新。每代Android平台都以甜点命名,如表1.2所示,别名的首字母依次为C、D、E、F、G、H和I。
表1.2 Android平台别名
版本号 | 别 名 |
1.5 | Cupcake(纸杯蛋糕) |
1.6 | Donut(甜甜圈) |
2.0/2.1 | Éclair(闪电泡芙) |
2.2 | Froyo(冻酸奶) |
2.3 | Gingerbread(姜饼) |
3.0 | Honeycomb(蜂窝) |
4.0 | Ice Create Sandwich(冰激凌三明治) |
在Android平台不断推陈出新中,很多新特性也不断地被增加到该平台。下面对表1.2中所列版本的主要特性进行简单的介绍。
- Cupcake(Android 1.5)
2009年4月30日,Android 1.5发布,更新的主要特性包括:
[√]支持横向和纵向屏幕的虚拟键盘,支持第三方虚拟键盘,支持自定义词汇。
[√]桌面增加模拟时钟、日历、音乐播放器、相框等应用。
[√]支持视频的录制与倒放(MPEG-4和3GP格式)。
[√]支持立体声蓝牙,改善自动配对性能。
[√]使用最新的Webkit浏览器和Squirrelfish JavaScript引擎,浏览器内无限制粘贴,可以在页面内搜索、选择编码方式、统一转到和查找对话框等。
[√]通讯录支持显示用户照片、记录来电时间等功能。
[√]使用2.6.27版Linux内核,SD卡文件系统自动检测和修复等;
[√]支持查看通讯录中Google Talk朋友状态、SMS、MMS、Gmail和Email应用,批量处理Gmail信息,上传视频到Youtube,上传图片到Picasa等。
- Donut(Android 1.6)
2009年9月15日,Android 1.6发布,更新的主要特性包括:
[√]重新设计的快速搜索框可以在书签、历史记录、通讯录等中进行搜索,可以优先显示用户历史选择结果。
[√]升级的用户接口将照相机、摄像机、画廊进行整合,用户可以使用双向开关在照相机和摄像机间进行切换,可以在画廊中选择多张照片进行删除,照相机启动时间和拍摄间隔时间大幅度缩短。
[√]设置中新增加的虚拟私有网络(VPN)控制面板允许用户配置及连接如下VPN类型: L2TP/IPSEC pre-shared key based VPN、L2TP/IPsec certificate based VPN、L2TP only VPN、PPTP only VPN。
[√]新的电池使用界面可以显示哪些应用和服务在消耗电量。如果用户觉得某个应用或服务消耗太大,则可以调整设置、停止应用或者卸载应用来节约电量。
[√]用户可以下载新的辅助服务并在设置中启用。
- Éclair(Android 2.0/2.1)
2009年10月26日,Android 2.0发布,更新的主要特性包括:
[√]浏览器支持HTML5。
[√]强化语音识别搜索功能。
[√]新的Car Home应用方便驾车用户使用。
[√]增加Microsoft Exchange支持。
[√]Google地图服务更新。
[√]支持内置相机闪光灯。
[√]支持数码变焦。
- Froyo(Android 2.2)
2010年5月20日,Android 2.2发布,更新的主要特性包括:
[√]加强Microsoft Exchange支持。
[√]浏览器可以使用摄像头等设备。
[√]支持Adobe Flash 10.1版。
[√]支持将软件安装到扩展内存。
[√]提升浏览器速度、Dalvik虚拟机即时编译性能等。
- Gingerbread(Android 2.3)
2010年12月7日,Android 2.3发布,更新的主要特性包括:
[√]更新用户界面、键盘及复制/粘贴功能。
[√]支持网络电话功能。
[√]支持多个镜头及多种传感器。
[√]从YAFFS转换到ext4文件系统。
[√]性能和续航时间有所增强。
- Honeycomb(Android 3.0)
2011年2月2日,Android 3.0发布,更新的主要特性包括:
[√]仅供平板电脑使用。
[√]在浏览器中使用标签页代替窗口,这样用户可以在一个窗口中浏览多个标签页。
[√]新版Gmail信息栏分成两部分,方便用户进行导航和信息管理。
[√]支持3D图形。
[√]支持大屏幕、高分辨率的平板电脑。
[√]专门为平板电脑设计的用户界面。
[√]专门为平板电脑设计的虚拟键盘及改进剪切/粘贴操作。
- Ice Cream Sandwich(Android 4.0)
2011年10月19日,Android 4.0发布,更新的主要特性包括:
[√]同时支持手机和平板电脑。
[√]新增蓝色主题。
[√]相机自带全景模式。
[√]Gmail外观有所修改。
[√]优化用户界面。
[√]Google搜索栏设置在最上方。
[√]系统字体由原先的Droid Sans变更为Roboto。
1.2.5 Eclipse的下载与安装
在Android官网上,推荐使用Eclipse与ADT插件来组合开发,下面详细讲解Eclipse 3.7.1的下载与安装过程。
(1)打开浏览器,在地址栏中输入http://www.eclipse.org,进入Eclipse官方主页,如图1.24所示。
图1.24 Eclipse官方主页
(2)单击图1.24中的Download Eclipse链接,根据操作系统不同,在Eclipse IDE for Java Developers选项右侧选择适当的版本,如图1.25所示。
图1.25 Eclipse版本选择页面
(3)在图1.26所示界面中,单击Download [China] Beijing Institute of Technology (http)链接进行下载。
图1.26 Eclipse下载页面
(4)将下载完成的压缩包进行解压缩,完成Eclipse的安装。
1.2.6 Eclipse的汉化
为了方便不熟悉英语的用户使用Eclipse,下面讲解如何对Eclipse进行汉化。
(1)打开浏览器,在地址栏输入http://www.eclipse.org/babel/,进入Eclipse Babel官方主页,如图1.27所示。
图1.27 Eclipse Babel主页
(2)单击页面左侧的Downloads链接,复制Babel Language Pack Update Site for Indigo下方的http://download.eclipse.org/technology/babel/update-site/R0.9.0/indigo链接,如图1.28所示。
图1.28 Eclipse Babel下载页面
(3)启动Eclipse,选择Help/Install New software命令,如图1.29所示。打开安装新插件窗口,如图1.30所示。
![]() | ![]() |
图1.29 Help菜单 | 图1.30 安装新插件窗口 |
(4)单击Add按钮,显示增加仓库对话框,如图1.31所示。在Name文本框中输入Eclipse Babel,在Location文本框中输入刚刚复制的网址。单击OK按钮,联网查找可用软件包。
图1.31 增加仓库对话框
(5)在图1.32中,选中Babel Language Packs for eclipse下的Babel Language Pack for eclipse in Chinese(Simplified)复选框,单击Next按钮。
图1.32 安装新插件窗口
(6)在图1.33所示窗口中,显示的是插件的详细信息,包括插件名称、版本号和ID。单击Next按钮继续。
图1.33 选择安装插件的详细信息
(7)在图1.34所示窗口中,显示的是安装协议,选中I accept the terms of the license agreement单选按钮同意协议,然后单击Next按钮开始安装。
图1.34 安装协议
(8)将显示插件的下载进度,如图1.35所示。
图1.35 插件的下载进度
(9)在下载完成后会询问是否安装该插件,如图1.36所示。
图1.36 询问是否安装该插件
(10)单击OK按钮确认安装,在安装完成后会要求重新启动Eclipse,如图1.37所示。单击Restart Now按钮,完成安装。
图1.37 询问是否重启Eclipse
1.2.7 ADT插件的安装及配置
Google专门为Eclipse开发了一个插件来辅助开发,即Android Development Tools (ADT),下面讲解该插件的安装及配置。
(1)打开浏览器,在地址栏输入http://developer.android.com/index.html,进入Android开发者官方主页,如图1.38所示。
图1.38 Android开发者主页
(2)选择SDK选项卡,单击页面左侧的ADT 16.0.1链接,如图1.39所示。
图1.39 ADT插件说明页面
(3)滚动页面到Downloading the ADT Plugin,复制https://dl-ssl.google.com/android/eclipse/链接。
(4)启动Eclipse,单击“帮助”菜单,在“帮助”菜单中选择Install New Software命令,如图1.40所示。
图1.40 “帮助”菜单
(5)打开安装新插件窗口,如图1.41所示。
图1.41 安装新插件窗口
(6)在图1.41中,单击Add按钮,显示增加仓库对话框,如图1.42所示。在Name文本框中输入ADT,在Location文本框中输入刚刚复制的网址。单击“确定”按钮,联网查找可用软件包。
图1.42 增加仓库对话框
(7)在图1.43中,选中Developer Tools复选框,单击“下一步”按钮。
图1.43 安装新插件窗口
(8)在图1.44中,显示的是插件的详细信息,包括插件名称、版本号和ID。单击“下一步”按钮继续。
图1.44 插件的详细信息
(9)在图1.45中,显示的是安装协议界面,选中I accept the terms of the license agreement单选按钮同意协议,然后单击“下一步”按钮开始安装。
图1.45 安装协议
(10)将显示插件的下载进度,如图1.46所示。
图1.46 插件的下载进度
(11)在下载完成后会询问是否安装该插件,如图1.47所示。
图1.47 询问是否安装该插件
(12)单击“确定”按钮确认安装,在安装完成后会要求重新启动Eclipse,如图1.48所示。单击Restart Now按钮,完成安装。
图1.48 询问是否重启Eclipse
(13)在重启Eclipse后,会显示ADT插件的配置页面,如图1.49所示。
图1.49 ADT插件配置页面
(14)选中Use existing SDKs单选按钮,然后选择下载好的SDK位置,单击“下一步”按钮,打开如图1.50所示的统计数据窗口,单击“完成”按钮,完成配置。
图1.50 ADT插件统计数据窗口
(15)单击Eclipse工具栏中的图标,显示AVD管理工具对话框,如图1.51所示。
图1.51 AVD管理工具对话框
(16)在图1.51中,单击New按钮。在Name文本框中输入AVD4.0.3,在Target下拉列表框中选择Android 4.0.3-API Level 15,在SD Card的Size 文本框中输入256,在Skin的Built-in下拉列表框中选择WSVAG,其他使用默认设置,如图1.52所示。单击Create AVD按钮,完成创建。
图1.52 创建AVD对话框
说明:Name栏可以使用的字符包括a~z、A~Z、0~9、.、-、_。其中a~z表示从a到z的26个字母。
(17)创建完Android虚拟设备后,打开如图1.53所示窗口,单击Start按钮,在打开的窗口中单击Launch按钮,启动Android模拟器,如图1.54所示。
![]() | ![]() |
图1.53 AVD管理工具窗口 | 图1.54 Android模拟器效果图 |
1.3 第一个Android程序
教学录像:光盘\TM\lx\1\第一个Android程序.exe
作为程序开发人员,学习新语言的第一步就是练习输出Hello World。下面将详细讲解如何使用Eclipse工具开发这个程序。(实例位置:光盘\TM\sl\1\1.1)
1.3.1 创建Android应用程序
创建Android应用程序的具体步骤如下。
(1)启动Eclipse,选择“文件”/“新建”/“项目”命令,打开“新建项目”窗口,如图1.55所示。
图1.55 “新建项目”窗口
(2)选择Android文件夹中的Android Project文件,单击“下一步”按钮进入新建Android项目界面,如图1.56所示。
图1.56 新建Android项目界面
(3)在Project Name文本框中输入项目名称1.1,其余使用默认设置,单击“下一步”按钮,进入选择Targer版本界面,如图1.57所示。
图1.57 选择Target版本界面
(4)选择Target版本为Android 4.0.3,单击“下一步”按钮,进入配置应用信息界面,如图1.58所示。
图1.58 配置应用信息界面
(5)在Application Name:文本框中输入HelloWorld,在Package Name文本框中输入com.mingrisoft,在Create Activity: 文本框中输入HelloWorldActivity,单击“完成”按钮,完成项目的创建。
下面简单介绍一下上面填写的各项内容的作用。
[√]Project Name:是Eclipse项目名称,即在Eclipse工作空间创建的文件夹名称。
[√]Build Target:用于选择运行该Android应用的平台,该平台版本不能大于运行该应用的AVD版本。
[√]Application name:是Android应用程序名称,该名称会在Android设备(如手机、平板电脑等)上显示。
[√]Package name:用于指定包名,其命名规则与Java完全相同。
[√]Create Activity:是创建的Activity名称,这里使用“HelloWorldActivity”是为了便于区分。
[√]Minimum SDK:是当前应用使用的API版本,当在Build Target中选择运行该Android应用的平台后,该栏会自动填写。
1.3.2 Android项目结构说明
默认情况下,使用ADT插件创建Android项目后,其目录结构如图1.59所示。
图1.59 Android项目结构
下面对图1.59中常用的包和文件进行说明。
- src包
在src包中,保存的是应用程序的源代码,如Java文件和AIDL文件等。HelloWorldActivity.java文件的代码如下:
- public class HelloWorldActivity extends Activity {
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- }
- }
- gen包
在gen包中,包含由ADT生成的Java文件,如R.java和AIDL文件创建的接口等。R文件的代码如下:
- public final class R {
- public static final class attr {
- }
- public static final class drawable {
- public static final int ic_launcher=0x7f020000;
- }
- public static final class layout {
- public static final int main=0x7f030000;
- }
- public static final class string {
- public static final int app_name=0x7f040001;
- public static final int hello=0x7f040000;
- }
- }
从上面的代码可以看到,R文件内部由很多静态内部类组成,内部类中又包含很多常量,这些常量分别表示res包(将在下面介绍)中的不同资源。
注意:不能手动修改R文件,当res包中资源发生变化时,该文件会自动修改。
- android.jar文件
android.jar文件包含了Android项目需要使用的工具类、接口等。如果开发不同版本的Android应用,该文件会自动替换。
- assets包
assets包用于保存原始资源文件,其中的文件会编译到.apk中,并且原文件名会被保留。可以使用URI来定位该文件夹中的文件,然后使用AssetManager类以流的方式来读取文件内容。通常用于保存文本、游戏数据等内容。
- res包
res包用来保存资源文件,当该包中文件发生变化时,R文件会自动修改。
drawable子包通常用来保存图片资源。由于Android设备多种多样,其屏幕的大小也不尽相同。为了保证良好的用户体验,会为不同的分辨率提供不同的图片。图片的质量通常分为高、中、低3种。
layout子包通常用来保存应用布局文件,ADT插件提供了可视化工具来辅助用户开发布局文件,如图1.60所示。
图1.60 布局编辑器
layout子包中main.xml文件的代码如下:
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical" >
- <TextView
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="@string/hello" />
- </LinearLayout>
values子包通常用于保存应用中使用的字符串,开发国际化程序时,这种方式尤为方便。strings.xml文件的代码如下:
- <?xml version="1.0" encoding="utf-8"?>
- <resources>
- <string name="hello">Hello World, HelloWorldActivity!</string>
- <string name="app_name">1.1</string>
- </resources>
说明:读者可以将R文件与res包中的内容进行对比,就可以了解两者之间的关系。例如,R文件中内部类string对应values子包中的strings.xml文件。
- AndroidManifest.xml文件
每个Android应用程序必须包含一个AndroidManifest.xml文件,该文件位于根目录中。在该文件内,需要标明Activity、Service等信息,否则程序不能正常启动。
- <?xml version="1.0" encoding="utf-8"?>
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.mingrisoft"
- android:versionCode="1"
- android:versionName="1.0" >
- <uses-sdk android:minSdkVersion="15" />
- <application
- android:icon="@drawable/ic_launcher"
- android:label="@string/app_name" >
- <activity
- android:name=".HelloWorldActivity"
- android:label="@string/app_name" >
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
- </application>
- </manifest>
- project.properties文件
该文件中包含项目属性,如build target等。如果需要修改项目属性,在Eclipse中右击项目,再选择“属性”命令即可。
1.3.3 运行Android应用程序
运行Android应用程序的具体步骤如下。
(1)单击Eclipse工具条中的按钮,弹出如图1.61所示的项目运行方式选择窗口。选择Android Application,单击“确定”按钮运行程序。
图1.61 项目运行方式
(2)开始运行后,会显示模拟器的启动画面。启动完毕后,会显示屏幕锁定的模拟器,如图1.62所示。
图1.62 屏幕锁定的模拟器
(3)在图1.62中,将屏幕右侧的锁头拖拽到圆圈外就可以解锁。解锁后的屏幕显示刚刚创建的应用程序的运行效果,如图1.63所示。由于模拟器屏幕较大,运行效果不是很清晰。将左上角放大后的效果如图1.64所示。
![]() | ![]() |
图1.63 应用程序的运行效果 | 图1.64 左上角放大后的效果 |
1.3.4 调试Android应用程序
在开发过程中,肯定会遇到各种各样的问题,这就需要开发人员耐心地进行调试。下面简单介绍一下如何调试Android程序。
在com.mingrisoft包中,有一个名为HelloWorldActivity的类,将该类的代码替换为如下内容。
- public class HelloWorldActivity extends Activity {
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- Object object = null;
- object.toString();
- setContentView(R.layout.main);
- }
- }
学习过Java语言的读者都知道,运行上面的代码会发生NullPointerException错误。启动模拟器后,运行效果如图1.65所示。
图1.65 Android程序出现错误
但是此时Eclipse控制台上并没有给出任何错误提示,如图1.66所示。
图1.66 Eclipse控制台信息
那么该如何查看程序哪里出现问题了呢?可以使用LogCat视图,如图1.67所示。其中有一行信息说明com.mingrisoft包中的HelloWorldActivity的onCreate()方法中发生了异常,代码位于HelloWorldActivity.java文件的第12行。
图1.67 应用程序的异常信息
在此,读者只需要了解如果程序出现问题,则在LogCat视图中查找即可。
1.3.5 Android应用开发流程
前文介绍了如何创建第一个Android应用,为了加强读者对于Android开发流程的了解,下面总结一下开发的基本步骤。
(1)创建Android虚拟设备或者硬件设备。
开发人员需要创建Android虚拟设备(AVD)或者链接硬件设备来安装应用程序。
(2)创建Android项目。
Android项目中包含应用程序使用的全部代码和资源文件。它被构建成可以在Android设备安装的.apk文件。
(3)构建并运行应用程序。
如果使用Eclipse开发工具,每次保存修改时都会自动构建。而且可以单击“运行”按钮来安装应用程序到模拟器。如果使用其他IDE,开发人员可以使用Ant工具进行构建,使用adb命令进行安装。
(4)使用SDK调试和日志工具调试应用。
(5)使用测试框架测试应用程序。
1.4 小 结
“千里之行始于足下”,本章从Android平台特性开始,重点讲述了如何搭建Android开发环境以及如何使用Android进行开发。开发人员学习Android的一个重要动力就是可以用此盈利,因此介绍了在Android市场中获利的两种方式。对于不擅长英语的用户,特别增加了“Eclipse的汉化”部分。由于Android开发与普通的Java开发有所不同,尤其是在调试程序上,因此又简单介绍了一下LogCat视图。本章的主要目的是让读者对Android开发有一个大致了解,如果有哪些部分不懂,可以参考后面章节的详细内容。
1.5 实践与练习
参考本章提供的步骤,搭建Android开发环境。
在本章“Hello World”程序的基础上进行修改,将程序名称由“Hello World”替换为“FirstApp”,显示的字符串“Hello World, HelloWorldActivity!”替换为“我的第一个Android应用程序!”。(答案位置:光盘\TM\sl\1\1.2)