原创作者: 杨丰盛
阅读:7925次
评论:1条
更新时间:2011-06-23
《Android应用开发揭秘》
书名:Android应用开发揭秘
作者:杨丰盛
出版社:机械工业出版社
ISBN:9787111291954
出版日期:2010 年3月(1版2次)
开本:16
页码:515
版次:1-2
定价:69元
豆瓣网讨论地址:http://www.douban.com/subject/4200822/
China-pub预订地址:http://www.china-pub.com/196305
作者:杨丰盛
出版社:机械工业出版社
ISBN:9787111291954
出版日期:2010 年3月(1版2次)
开本:16
页码:515
版次:1-2
定价:69元
豆瓣网讨论地址:http://www.douban.com/subject/4200822/
China-pub预订地址:http://www.china-pub.com/196305
第2章 Android开发环境搭建
本章讲解如何配置Android开发环境首先介绍Android开发所需要的开发包和工具,以及获得它们的方式;其次介绍如何正确安装和配置这些开发包;最后,为了测试安装的开发环境,创建了第一个Android项目——HelloAndroid,然后在模拟器上运行和调试该程序,并将该应用程序安装到Android手机上。
2.1 Android开发准备工作
配置Android开发环境之前,首先需要了解Android对操作系统的要求。它可以使用Windows XP及其以上版本、Mac OS、Linux等操作系统,本书以Windows XP为例进行讲解。Android开发所需软件的版本及其下载地址如表2-1所示。
表2-1 Android开发所需软件的版本及其下载地址
2.2 开发包及其工具的安装和配置
Android以Java作为开发语言,JDK是进行Java开发时必需的开发包。Eclipse是一款非常优秀的开源IDE,在大量插件的“配合”下,完全可以满足从企业级Java应用到手机终端Java游戏的开发。Google官方也提供了基于Eclipse的Android开发插件ADT,所以本书选择Eclipse作为开发IDE。
2.2.1 安装JDK和配置Java开发环境
很多人不能够很好地进行Java开发,原因就在于对Java运行环境不了解或是了解得不够透彻。如果连一个普通的Java程序运行环境都搭建不好,就更不要说理解J2EE、J2ME以及本书所讲的Android等的运行环境了。因此,这里我们先讲如何安装JDK以及Java环境的配置,教大家搭建一个学习Java的基础平台,让大家少走一些弯路,多学到一些小窃门。
(1)登录http://java.sun.com ,下载最新版JDK。
(2)安装JDK,安装包中包含了JDK和JRE两部分,笔者建议将它们安装在同一个盘符下。双击安装程序,选择安装的目录,点击“下一步”,等待安装程序自动完成安装即可。
(3)右键单击“我的电脑”,选择“属性”菜单项,选择“高级”选项卡,选择“环境变量”,找到“Path”变量名(如果没有就新建一个名为“Path”的变量),点击“编辑”按钮,添加JDK安装目录中“bin”文件夹路径,如图2-1所示。然后点击“确定”按钮完成。再找到“ClASSPATH”变量(如果没有,同样可以新建),输入JDK安装目录中“lib”以及“demo”的路径,如图2-2所示,单击“确定”按钮完成。
图2-1 “Path”变量配置 图2-2 “ClASSPATH”变量配置
(4)安装配置完成之后,要测试是否安装成功。点击开始→运行,输入“CMD”,打开命令行模式。键入命令“java -version”,检测JDK是否安装成功,如果运行结果如图2-3所示,即表示安装成功。
图2-3 “java -version”测试命令
2.2.2 Eclipse的安装与汉化
Eclipse的安装非常简单,直接将下载的压缩包解压即可。老版本的Eclipse的多国语言项目只更新到3.2.1版本,以后就再也没有更新了。Eclipse最近发布了一个名为Babel project的项目,这个项目就是用来解决国际化的问题,旨在为每一个插件提供独立的语言包。这样,当做RCP项目的时候,根据需要对语言进行打包即可!
Babel的安装方法和步骤如下所示:
(1)启动Eclipse开发工具,依次点击“Help ” →选择“Software Update ...”菜单命令,打开“Software Updates and Add-ons”对话框,选择“Avaliable Software”项。接着点击“Add Site...”按钮,在“Location”文本框中输入Babel更新地址:http://download.eclipse.org/
technology/babel/update-site/ganymede,然后点击 OK 按钮,如图2-4所示。
图2-4 添加语言包更新地址
(2)“Avaliable Software”表中会多出一项http://download.eclipse.org/technology/babel/update-site/ganymede/ ,点击该项左边的箭头,就会出现网络更新软件列表,如图2-5所示。
图2-5 Avaliable Software选择框
(3)选择“Simplified Chinese”语言包后,点击 “Install... ”按钮,等待Eclipse处理。
处理完成后会出现“Install”对话框,这时会提示你选择要安装的语言包。根据提示,很容易完成后面的操作,这里就不再赘述了。
安装完毕后,重新启动Eclipse即可完成全部汉化过程。
如果重启Eclipse后不显示中文,请用命令行 “eclipse.exe -nl zh_CN”重新启动Eclipse。
2.2.3 SDK和ADT的安装和配置
安装了JDK和Eclipse后,现在就要安装Android SDK和ADT插件了。
1.Android SDK安装
(1)解压缩下载好的SDK安装包到要安装SDK的路径,然后运行“SDK Setup.exe”。
(2)如果遇到了消息为“Failed to fetch URL…”的错误提示,那么需要将HTTPS方式改为HTTP方式,在“Android SDK and AVD Manager”窗口的左侧选择 “Settings”,选中 “Force https://…”选项(如图2-6所示),点击“Save & Apply”并重新运行 SDK Setup.exe。
图2-6 更改HTTP方式
(3)点击“Available Packages”,选择要安装的API版本及USB驱动和SDK文档,如图2-7所示。这里为了测试方便,所以全部选择了。
图2-7 选择API版本
(4)选择好之后点击“Install Selected”按钮,安装选中的软件包,在接下来出现的界面中依次点击“Accept All”单选按钮和“Install Accepted”按钮,开始下载所选择的安装包。
下载完成之后,根据提示即可完成后续的安装操作。
到这里,我们就完成了Android SDK的安装,下面来配置Android SDK。
2.Android SDK配置
需要将Android SDK安装目录中的tools文件夹路径添加到环境变量中以便使用,操作步骤如下:
(1)右键点击“我的电脑”,依次选择“属性”→“高级”→“环境变量”选项,如图2-8所示。
(2)选择“系统变量”中变量名为“Path”的项,点击“编辑”按钮,将Android SDK安装文件夹下的tools文件夹的路径加入到“Path”变量中,注意用“、”隔开,如图2-9所示。
图2-8 环境变量 图2-9 编辑系统环境变量
(3)依次点击“确定”,完成环境变量配置。
3.安装和配置ADT
下面我们来安装和配置ADT插件,步骤如下:
(1)启动Eclipse,点击“Help”菜单,依次选择“Software Update...”项和“Avaiable Software”选项卡,点击“Add Site...”按钮,输入地址https://dl-ssl.google.com/android/eclipse/ ,结果如图2-10所示。
(2)点击“OK”,这时可能会出现如图2-11所示的错误。
图2-10 添加ADT的更新地址 图2-11 更新地址错误
解决这个问题的方法是:将“https://dl-ssl.google.com/android/eclipse/”中的“https”更改为“http”,在接下来的对话框中选中“Name”下的所有选项,根据提示即可完成后续的安装过程。
(3)打开菜单“Windows”,依次选择“Preferences”→“Android”,点击“Browse...”按钮,选择 Android SDK的安装路径,如图2-12所示。
图2-12 Eclipse首选项
(4)点击“OK”按钮 ,开打菜单“File”,依次选择“NEW” → “Project...”菜单命令,出现如图2-13所示的“Android Projest”选项,则表示安装配置成功。
图2-13 新建工程界面
到这里,我们的准备工作已经就绪,可以在Android平台上开发我们的应用了,很心动吧!神奇的Android之旅即将开始。
2.3 创建第一个Android项目——HelloAndroid
为了便于第一次开发Android应用的朋友能对整个开发过程有系统性的了解,并能亲自动手创建自己的应用,我们特在本书的开篇准备了一个简单的实例项目——HelloAndroid。
2.3.1 创建HelloAndroid项目
ADT提供了简单的生成Andriod应用框架的功能,我们现在使用ADT通过Eclipse创建一个Android工程,其步骤如下。
(1)打开Eclipse开发工具,新建一个项目,在弹出的“New Project”对话框的列表中展开“Android”项,然后选择“Android Project”子项,如图2-14所示。
图2-14 新建一个Android工程
(2)点击“Next”按钮,在“Project name”文本框中输入“HelloAndroid”,然后在“Build Target”选项框中选择“Android SDK 1.5”,在Application name文本框中输入这个应用程序的名字(HelloAndroid),在Package name文本框中输入应用程序包的名字(com.yarin.Android.HelloAndroid),在Create Activity文本框中输入Activity的名字(HelloAndroid),如图2-15所示。
图2-15 新建HelloAndroid工程
(3)单击“Finish”按钮,此时Eclipse会自动完成Android项目的创建,这时Eclipse开发平台左边的导航器中显示了刚才创建的项目“HelloAndroid”。如果没有出现导航器,则可以通过单击“Window”→“Show View” →“Package Explorer”菜单命令来显示导航器,如图2-16所示。
到这里,HelloAndroid项目已经创建好,而且这个项目是由我们前面安装的ADT插件自动生成,所以不用编写代码即可运行。下面我们将讲述如何在模拟器中运行刚刚创建的HelloAndroid项目。
2.3.2 运行HelloAndroid及模拟器的使用
上面我们已经利用ADT插件通过Eclipse创建好了第一个Android项目,而且没有编写任何代码,我们很想看看运行之后的结果!不要着急,在模拟器中运行该应用之前,有必要了解一下模拟器的使用和配置。
从Android 1.5开始引入了AVD(Android Virtual Device)这个概念。AVD是一个经过配置的模拟器。在创建AVD时可以配置的选项有:模拟器影像大小、触摸屏、轨迹球、摄像头、屏幕分辨率、键盘、GSM 、GPS、Audio录放、SD卡支持、缓存区大小等。配置Android模拟器的具体步骤如下所示。
(1)首先打开“Android SDK and AVD Manager”,如图2-17所示。
图2-16 显示项目管理器 图2-17 Android SDK and AVD Manager菜单
(2)点击左边的“Virtual Devices”选项,再点击右边的“New...”按钮,新建一个AVD。
(3)在“Name”标签处填写AVD的名字,在“Target”标签处选择API等级,在“Size”标签处填写要创建的SD卡的大小,在“Skin”标签中设置模拟器的风格,如图2-18所示。
(4)到这里,我们便可以运行第一个Android项目了吗?还是不行,还需要配置模拟器运行的AVD。操作步骤为:点击“Run”,选择“Run Configurations”菜单命令,打开“Run Configurations”对话框,如图2-19所示。
(5)双击“Run Configurations”对话框左边的导航器中的“Android Application”菜单命令,创建一个Android项目运行配置。在右边的“Name”文本框中输入 Android项目运行配置的名字(HelloAndroid),在“Android”选项卡中的“Project”文本框中输入要运行的Android项目,同样可以点击右边的“Browse...”按钮来选择Android项目,如图2-20所示。
图2-18 创建AVD
图2-19 运行配置界面
图2-20 配置要运行的HelloAndroid项目
(6)点击“Target”选项卡,选择“Automatic”单选框,然后在AVD列表框中选择我们刚才创建的AVD,如图2-21所示。
图2-21 制定运行HelloAndroid项目的AVD
(7)点击“Run”按钮,这样便可以运行HelloAndroid项目了,不过Android模拟器启动非常慢,慢慢等吧。但是Android的模拟器做得非常漂亮,终于可以看到第一个Android项目的运行效果了,如图2-22所示。
图2-22HelloAndroid项目在模拟器中的运行效果 图2-23 Android模拟器显示中文界面
从Android SDK 1.5版本开始,Android模拟器开始支持中文了,也内置了中文输入法(谷歌拼音输入法),下面我们就将模拟器改为中文环境。操作步骤为:启动Android模拟器,进入Android模拟器菜单,选择“Settings”菜单项,开打“Settings”菜单,选择“Locale&text”菜单项,打开“Locale&text”菜单,依次选择“Select locale”项和“Chinese(China)”项,这样就设置为中文了,然后返回桌面,如图2-23所示。
上文我们使用ADT插件在Eclipse开发工具中创建了AVD及设置模拟器等操作,同样可以在命令行模式下完成上面的操作。
扩展学习
大家已经看到了Android的模拟界面了,这款模拟器功能非常齐全,电话本、通话等功能都可正常使用(当然不是真的从模拟器中打电话)。甚至其内置的浏览器和Google Maps都可以联网。用户可以使用键盘输入,鼠标点击模拟器按键输入,甚至还可以使用鼠标点击、拖动屏幕进行操纵。我们在开发项目时,这个模拟器完全可以满足我们测试的需求。下面我们列举一些常用的模拟器操作。
* 列出模拟器类型:android list targets。
* 创建模拟器:android create avd --target 2 --name cupcake,cupcake为新建模拟器的名字。
* 列出自己创建的模拟器:android list avd。
* 切换模拟器样式:在创建命令后面加上 “--skin QVGA”即可。切换样式:Windows操作系统按F7键即可。
* 删除模拟器:android delete avd --name cupcake,cupcake为删除的模拟器的名字。
* 指定用什么模拟器启动:emulator -debug avd_config -avd cupcake,cupcake为模拟器的名字。
* 将apk文件安装到Android模拟器。操作步骤为:首先启动Android模拟器,然后打开命令行对话框,进入命令行模式。在命令行模式下进入Android SDK安装目录下面的tools文件夹,输入“adb install c:\ poker80.apk”(c:\ poker80.apk是要安装的文件的路径),这样便可以将apk文件安装到模拟器上,如图2-24所示。
图2-24 安装apk文件到模拟器
* 卸载模拟器中的apk文件。操作步骤为:首先启动Android模拟器,进入命令行模式。在命令行模式下进入Android SDK安装目录下面的tools文件夹,然后在命令行处依次输入“adb shell”、“cd data”、“cd app”、“ls”(主要是针对不知道包下面的文件的情况,可以用ls命令列表显示出来)、“rm com.fungsing.poker80.apk”命令(“com.fungsing.poker80.apk.apk”是你要卸载的apk包),如图2-25所示。
图2-25 从Android模拟器卸载apk文件
2.3.3 调试HelloAndroid
在Eclipse开发工具中调试程序的方法很多,使用Eclipse调试Android程序时需要注意一些细节上的问题。许多刚接触Android的开发者,在调试Android程序时总是不能迅速地找到程序的错误所在,Eclipse+ADT的开发环境中没有直接跟踪对象内容的方法,但是我们可以使用Google提供的ADT插件DDMS(Dalvik Debug Monitor Service)在Eclipse上轻松地调试Android程序。DDMS为我们提供了很多功能,例如:测试设备截屏,针对特定的进程查看正在运行的线程以及堆信息,Logcat,广播状态信息,模拟电话呼叫,接收SMS,虚拟地理坐标等等,下面我们通过DDMS来调试我们的HelloAndroid项目。
(1)将Eclipse开发工具的工作界面切换到DDMS标签。首先确定Eclipse开发工具右上角是否有“DDMS”标签,如果有,则直接点击该标签即可切换到DDMS工作界面,如图2-26所示。如果没有,则点击“Open Perspective”按钮,选择“Other...”命令按钮,打开“Open Perspective”对话框,如图2-27所示。在“Open Perspective”对话框中选择“DDMS”选项,然后点击“OK”按钮,如图2-28所示。
图2-26 DDMS工作界面切换 图2-27 打开视图布局显示操作
图2-28 视图布局选择框
(2)在“DDMS”界面中选择“Devices”标签,查看其菜单的功能,可以看到Debug Process(调试进程)、Update Threads(更新线程)、Update Heap(更新堆)、Cause GC(引起垃圾回收)、Stop Process(停止进程)、Screen Capture(屏幕截图)、Reset adb(重启Android Debug Bridge)菜单选项,如图2-29所示。
从图2-29中可以观察到Android程序运行时的各种状态,比如进程信息、线程分析、堆内存的占用,结束一个进程等。当然,这些操作都是在DDMS框架下进行的,日常开发的程序是无法执行调用的。如果adb调试桥运行不稳定,可以选择“Reset adb”来重新启动“adb.exe”进程。下面我们介绍如何使用DDMS的“Logcat”来调试Android程序,步骤如下:
(1)“Logcat”通过“android.util.Log”类的静态方法来查找错误和打印系统日志消息。它是一个进行日志输出的API,我们在Android 程序中可以随时为某一个对象插入一个Log,然后在DDMS中观察Logcat的输出是否正常。android.util.Log常用的方法有以下5个:
* Log.v(String tag, String msg);
* Log.d(String tag, String msg);
* Log.i(String tag, String msg);
* Log.w(String tag, String msg);
* Log.e(String tag, String msg)。
图2-29 DDMS操作菜单
这5种方法的首字母分别对应VERBOSE、DEBUG、INFO、WARN、ERROR。当利用DDMS进行调试时,它们的区别并不大,只是显示的颜色不同,可以控制要显示的某一类错误,一般如果使用“断点”方式来调试程序,则使用Log.e比较合适。但是根据规范建议Log.v、Log.d信息应当只存在于开发过程中,最终版本只可以包含Log.i、Log.w、Log.e这三种日志信息。下面我们对“HelloAndroid”程序进行调试,首先修改“HelloAndroid.java”如代码清代2-1所示。我们在代码中加入了需要输出的日志信息。
代码清单2-1 第2章\HelloAndroid\src\com\yarin\Android\HelloAndroid\HelloAndroid.java
/* 定义TAG标签,这样可以很好地区分打印出来的Log */ private static final String TAG = "HelloAndroid"; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); /* 打印出不同的Log信息 */ Log.v(TAG,"VERBOSE"); Log.d(TAG,"DEBUG"); Log.i(TAG,"INFO"); Log.w(TAG,"WARN"); Log.e(TAG,"ERROR"); setContentView(R.layout.main); }
(2)点击“Run”→“Debug”菜单命令,进入调试模式,如图2-30所示。
(3)切换到“DDMS”界面,点击“Logcat”标签,即可查看我们刚刚在程序中打印的Log信息。用不同颜色表示了不同等级的信息,这样就可方便地对程序进行跟踪,使得调试Android程序更加方便。
图2-30 调试菜单命令
在调试Android程序时,同样可以通过设置断点的方式来调试程序。在启动应用程序进行调试时,Eclipse 会自动切换到 Debug 透视图。毫无疑问,最常见的调试步骤是设置断点,这样可以检查条件语句或循环内的变量和值。要在 Java 透视图的 Package Explorer 视图中设置断点,双击选择的源代码文件,在一个编辑器中打开它。遍历代码,将鼠标放在可疑代码一行的标记栏(在编辑器区域的左侧)上,双击即可设置断点,如图2-31所示。
注意 最好不要将多条语句放在一行上,因为会无法单步执行,也不能为同一行上的多条语句设置行断点。
一旦找到错误发生的位置,你可能想知道在程序崩溃之前它在做什么。一种方法是单步执行程序的每行语句,直到运行到可疑的那一行。有时候最好只运行一段代码,在可疑处停止运行,检查数据。另一种方法是声明条件断点,断点在表达式值发生变化时触发。如图2-32所示,我们设置条件“savedInstanceState == null”,当满足这个条件时,程序就会挂起。除此之外,在输入条件表达式时,也可以使用代码帮助。为了在 Debug 透视图的编辑器中计算表达式的值,选择设置了断点的那行代码,在上下文菜单中,通过 Ctrl+Shift+I 或右键单击你感兴趣的变量并选择 Inspect 选项。在当前堆栈框架的上下文中会计算表达式的值,在 Display 窗口的 Expressions 视图中会显示结果。
图2-31 设置“断点”
图2-32 设置条件断点
要在 Debug 视图中挂起执行线程,选择一个运行线程,单击 Debug 视图工具栏中的 Suspend。该线程的当前调用堆栈就会显示出来,当前执行的代码行就会在 Debug 透视图中的编辑器中高亮显示。挂起一个线程时,将鼠标放在 Java 编辑器中的变量上,该变量的值就会在一个小的悬停窗口中显示出来。此时,该线程的顶部堆栈框架也会自动选中,其中的可视变量也会在 Variables 视图中显示出来,可以通过单击 Variables 视图中合适的变量名来检查变量。
以上列举了一些在Eclipse编辑器中常用的调试方式,当然调试的方式很多,读者同样可以根据自己的需要选择不同的方式进行调试。希望读者能够根据不同的错误采取不同的方式进行调试,使错误能快速地出现在眼前。
2.4 小结
本章主要对Android应用开发的前期工作进行了整理,即Android开发工具的准备、环境的搭建及配置,最后为了测试我们的环境安装是否正确,写出了一个最经典的HelloAndroid程序。同时,了解了Android平台如何调试程序,以辅助我们后期能够快速开发出Android应用。本章是Android应用开发的基础,大家好好把握,下面我们将正式对Android进行系统学习。
1 楼 pjp1919 2011-08-31 09:42
这里错了path变量是用“;” 隔开并非是“、”