《Android和PHP开发最佳实践》一2.10 Android开发环境-阿里云开发者社区

开发者社区> 华章出版社> 正文

《Android和PHP开发最佳实践》一2.10 Android开发环境

简介: 本节书摘来自华章出版社《Android和PHP开发最佳实践》一书中的第2章,第2.11节,作者 黄隽实,更多章节内容可以访问云栖社区“华章计算机”公众号查看

2.10 Android开发环境

前面我们已经学习了Android系统中最重要的基础概念的内容,那么接下来就要开始正式进入Android应用的实战开发阶段。“工欲善其事,必先利其器”,因此,我们先来熟悉Android应用的开发环境吧。
Android应用的开发环境是基于Eclipse平台的,Eclipse的强大无需多说,它当然也适应于Windows XP、Mac OS、Linux等多种操作系统。另外,我们还需要安装一些必备的开发工具包,所需要的软件见表2-8。
image

2.10.1 开发环境的搭建

在搭建开发环境之前,我们先来介绍一下Android开发环境的几个重要组成部分以及它们的安装方式。

  1. Android SDK
    Android SDK的安装非常简单。首先,直接打开前面提到的Android SDK的下载地址,下载最新的android-sdk_r13-windows.zip安装包;下载完毕之后,在电脑上解压,你会发现android-sdk-windows这个目录,这个目录就是Android SDK目录了,你可以把它复制到你所希望的位置并重新命名,比如D:Android;然后,打开SDK Manager.exe,你会看到如图2-16所示的安装界面。接下来,单击“OK”按钮让下载过程继续就可以了。系统会自动下载最新的Android SDK及其文档和例子等。当然,这个过程是很漫长的,如果有可能,建议从已经下载过的朋友那里复制一份。

image

  1. Java SDK
    Java SDK的安装过程也是很简单的,不过下载地址可能有点难找,如果找不到请尝试从以下地址下载:http://www.oracle.com/technetwork/java/javase/downloads/index.html。下载完最新版的JDK版本之后,使用软件自动安装即可。要注意的是,在安装完毕之后需要设置Windows系统的环境变量,如图2-17所示。

image

设置完毕之后,我们可以在Windows命令行中使用“java -version”命令行来检测JDK是否安装成功。如果运行结果如图2-18所示,则表示安装成功。

image

  1. Eclipse
    Eclipse开发工具的安装也是非常简单的,进入http://www.eclipse.org/downloads/页面,下载Eclipse Classic最新版本的ZIP压缩包,解压缩后再复制到相应目录,比如D:Eclipse。打开eclipse.exe就可以看到以下界面,如图2-19所示。

image

由于前面已经安装过Java SDK,所以直接打开eclipse.exe就会看到以上界面,否则打开时会提示错误。下面为没有使用过Eclipse的朋友大致介绍一下Eclipse的操作界面:最上面的那一排文字是“选项菜单栏”,包括几乎Eclipse中所有的操作;“选项菜单栏”的下面那排是常用项目的“快捷图标栏”;左边是Package Explorer,即“项目文件浏览框”,主要用于管理项目代码;中间是“代码编辑框”,我们在这里编辑代码;右边是Outline“代码大纲框”,这里可以方便地进行代码概览;右下方则是“调试信息框”,这里面包括Problems错误提示框、Console调试信息结果框等。

  1. ADT
    实际上,ADT(Android Development Tools)是Eclipse开发工具的一个插件,其安装过程也很简单:首先单击Eclipse界面上方的“Help”菜单,然后选择“Install New Software ”命令,接着在“Work with”输入框输入ADT插件地址“https://dl-ssl.google.com/android/eclipse”,单击“Add”按钮添加插件站点即可。当下方窗口出现选项列表时,单击选择所有的安装选项,然后按照提示安装即可,如图2-20所示。

安装完成后,会在左上方的“快捷图标栏”中出现ADT的快捷图标,即。单击此图标,系统会自动打开“Android SDK and AVD Manager”(Android虚拟设备管理器)界面,如图2-21所示。在这里我们可以创建并管理我们所需要的虚拟设备。此时,右边的“虚拟设配列表”中是空的。
在真正地开始创建设备之前,我们还需要配置一下ADT中Android的SDK位置,配置过程如下:执行“Window”菜单中的“Preferences”命令,然后选择左边的“Android”选项,然后在右边的“SDK Location”中选择Android SDK安装的位置。比如,之前我们把Android SDK安装到D:Android目录下,那么我们在这里就选择该目录,如图2-22所示。

image
image
image

Android虚拟设备管理器是用来运行和调试我们所开发的Android应用程序的,它可以模拟各个版本几乎所有的Android设备。如果你要添加一个新设备,就单击右边的“New”按钮,并按照图2-23配置所需要的设备,最后单击“Create AVD”完成创建,结果会在“虚拟设配列表”中显示,如图2-24所示。

image

这里简单介绍一下Android虚拟设备的主要配置选项。
Name:虚拟设备的名称。
Target:设备的Android API版本,考虑到兼容性,这里选择Android 2.2的API。
SD Card:设备的存盘大小。
Skin:设备外观,我们可以选择主流的设备,也可以直接指定设备的宽度和高度。
Hardware:设备硬件,如果你的设备需要有一些特殊的硬件,可以在这里进行配置。当然,还可以使用右侧的“New”按钮来添加所需要的虚拟硬件设备。

image

图2-24所示的就是创建完毕的AVD的虚拟设备列表界面,大家可以看到这次在右侧的设备列表中已经多出一个名为“Android_2.2”的AVD虚拟设备,我们可以选中它,然后单击右边的“Start”按钮,然后等待一段时间,即可看到虚拟设备界面,效果还是很不错的,如图2-25所示。

image

当然,如果你觉得虚拟设备的速度太慢,我们也可以使用真机来调试。其实,操作起来也很简单,安装步骤如下。
步骤1:安装手机的驱动,保证手机在Windows XP上可以被识别。
步骤2:打开手机的“设置”,然后选择“应用程序”中的开发选项,打开“USB调试”和“允许模拟地点”选项。
步骤3:打开Eclipse中的DDMS,在左边的Devices列表中就可以看到你的真机设备,单击选中它,就可以开始在真机上进行安装和调试了。
之后,我们就可以通过USB连接线把手机设备与开发机器连接起来,直接把Android应用程序安装到手机设备上进行调试。实际上,真机调试是正规Android应用程序发布的必要步骤,因为Android的手机设备型号非常多,所以在上线之前应尽量多测一些手机设备,保证Android应用的兼容性。

2.10.2 首个Android项目

前面我们已经把Android的开发环境准备好了,下面我们将使用Eclipse+ADT来创建自己的首个Android项目,也就是我们常说的Hello World项目,具体步骤如下。
步骤1:打开Eclipse开发工具,单击左上方的“新建项目”菜单创建一个项目,然后选择“Android Project”子项,单击“Next”按钮,如图2-26所示。
步骤2:在接下来的新建项目界面中的“Project Name”(项目名)文本框中填入项目的名字hello;在“Build Target”选项组中选择“Android 2.2”,这里的选项应该和前面建立AVD时采用的Android版本保持一致;在“Package name”文本框中填写包名“com.app.hello”;在“Create Activity”文本框中填入需要建立的默认Activity类名HelloActivity,如图2-27所示。
小贴士:以下的“hello”项目同“Hello World”项目。

image

image

步骤3:单击“Finish”按钮,ADT会自动生成代码并把项目建好。完成之后,我们就可以在Eclipse界面左边的“Package Explorer”窗口中看到创建完毕的名为“hello”的项目了。接下来,我们试着发布并运行此项目。右键单击hello项目,在快捷菜单中执行“Run As”→“Android Application”命令,如图2-28所示。

image

步骤4:Eclipse会帮助我们自动完成代码编译工作,并安装到Android模拟器上运行,hello项目的最终运行效果如图2-29所示。

image

至此,我们已经成功建立了自己的首个Hello World项目,虽然没有写过一行代码,这就是使用ADT环境给我们带来的好处。接下来,我们就以Hello World项目为例,分析一下Android应用的几个主要组成部分。首先,我们来看一下应用的基础配置文件,也就是AndroidManifest.xml文件,见代码清单2-38。
代码清单 2-38

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.app.hello"
    android:versionCode="1"
    android:versionName="1.0">
    <uses-sdk android:minSdkVersion="8" />
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".HelloActivity"
                  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>

可以看到,项目应用配置文件AndroidManifest.xml中不仅声明了Hello World应用的package名、版本号android:version、最小的sdk版本限制android:minSdkVersion等,还在元素里面声明了应用中唯一的Activity,也就是HelloActivity的配置信息。此外,在hello项目的配置文件中,我们还需要注意以下几点。
package名就是应用安装时用的类包名,务必保证该名不和其他应用重名,否则安装时会发生严重冲突。
元素中的android:name必须和相关的Activity类对应上,比如“.HelloActivity”应该和“com.app.hello.HelloActivity”类对应。
元素用于决定activity的调用方式,比如“android.intent.action.MAIN”就说明这个Activity是该应用的总入口,一个应用有且只能有一个MAIN入口Activity。
由于Hello World项目比较简单,大家在这里只能看到项目应用配置文件很小一部分的用法,比如Android应用的基础声明、Activity组件的简单配置等。关于配置文件其他更高级的用法,比如除Activity之外的其他重要组件的配置方法,以及关于消息过滤器的完整用法等,我们都将在实战篇中的7.1.1节中详细介绍。
接下来,打开源码目录src/下的com.app.hello代码包中的主要界面程序的Java程序HelloActivity.java的代码,如代码清单2-39所示。该类的代码逻辑比较简单,HelloActivity类继承了Activity基类;接着,在此类的onCreate接口中使用了setContentView方法设置本Activity所使用的layout模板;最后,在运行的时候,系统就会展示出对应的UI界面。
代码清单 2-39

package com.app.hello;

import android.app.Activity;
import android.os.Bundle;

public class HelloActivity extends Activity {
      /** Called when the activity is first created. */
      @Override
      public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
      }
}

读到这里,也许大家会有疑问,虽然我们设置了R.layout.main模板,但是模板文件在哪里呢?要解决这个问题,我们需要熟悉一下Android的基本目录结构,我们就以Hello World项目为例,项目的目录结构如图2-30所示。
image

对照图2-30,我们来讲解一下Android项目中常见的目录结构。
hello/src/com.app.hello:程序包目录,这里根据前面新建项目的时候填写的“Package Name”选项来生成应用程序包的Namespace命名空间。
hello/gen/com.app.hello:存储ADT自动生成的资源映射文件R.java,此文件内的静态类分别对应着Android不同的资源类型,而类中的静态类变量就表示对应资源的id标识,比如,R.layout.main对应hello/res/layout/main.xml布局文件。
hello/res/drawable-hdpi:图片以及渲染文件存储目录,在Android 2.1之后,原先的drawable目录被扩充为3个目录drawable-hdpi、drawable-ldpi和drawable-mdpi,主要是为了支持多分辨率,drawable-hdpi存放高分辨率图片,如WVGA(480×800),FWVGA(480×540)。
hello/res/drawable-ldpi:中等分辨率图片存储目录,如HVGA(320×480)。
hello/res/drawable-mdpi:低分辨率图片存储目录,如QVGA(240×320)。
hello/res/layout:布局文件存储目录,这里就是存储layout模板的地方了。
hello/res/values:配置文件存储目录,如strings.xml、colors.xml等。如果你要开发Android的国际化程序,可以在这里为不同的地区所支持的语言设置不同的目录,比如中文简体hello/res/values-zh-rCN,而中文繁体则为hello/res/values-zh-rTW。
hello/AndroidManifest.xml:每个Android项目都必需的基础配置文件,除了声明程序中的Activities、ContentProviders、Services和Intent Receivers,还可以指定permissions和instrumentations(安全控制和测试)等。
hello/proguard.cfg:主要用于Android应用代码的安全混淆。
理解以上内容之后,可以尝试着动手给Hello World项目的代码做一些小修改,比如,调整一下打印出来的文字,或者修改一下布局的方式等。这样不仅可以加深对Android项目开发的印象,还可以帮助大家快速地熟悉Android应用的开发工具,为后面的项目实践做准备。

2.10.3 使用DDMS调试工具

在完成了首个Hello World项目的创建之后,大家应该可以体会到在Eclipse加上ADT的开发环境中进行Android代码开发是一件多么方便的事情。而实际上,ADT还给我们提供了一个非常方便的调试工具,那就是DDMS。使用这个工具,代码调试工作也变得简单起来。我们只需要单击Eclipse界面右上方的DDMS按钮就可以切换到DDMS界面了,如图2-31所示。

image

接下来,我们按照“从左到右,从上到下”的顺序介绍一下该工具中的几个主要功能板块的功能和使用。
Devices:该窗口用于显示所有设备的详细信息,这里的emulator-5554就是模拟器设备的编号,下面则是设备运行的所有进程的列表,单击相应的进程还可以进行调试、截屏等动作。
Emulator Control:这里主要用于操控一些模拟器的行为,比如设置GPS定位信息等。
File Explorer:本窗口是Android系统的文件浏览器,在这里,我们可以浏览设备里面的文件目录,比如,之前在讲Android数据存储的时候提到过可以使用DDMS来浏览对应的存储文件,讲的就是这个窗口的功能。
LogCat:用于打印设备的调试信息,这个窗口应该是在开发过程中最经常用到的了,这里的信息分为五级,分别对应上面的V(VERBOSE)、D(DEBUG)、I(INFO)、W(WARN)、E(ERROR)五个圆形的按钮。此外,还可以通过单击这些按钮来过滤相应的调试信息。
Console:控制台打印的主要是操作信息,在这里,可以查看设备的运行情况,比如应用的apk包是否安装成功等。
在这些功能板块中,我们重点介绍一下LogCat窗口的使用,因为开发的时候最经常使用到的就是它了。在Android程序中,我们可以使用android.util.Log类里面的方法来打印不同级别的信息,笔者个人在调试的时候比较喜欢使用WARN级别,因为INFO以上的信息太多了,不利于过滤,而ERROR又太严重,经常和一些Exception混起来。另外,笔者个人还非常喜欢直接把它拉到开发界面中去,这样不需要切换到DDMS就可以调试程序了。以上是笔者本人的一些使用心得,如果你觉得不错的话不妨试一试。
当然,DDMS的用法不只有上面提到的这些功能,关于DDMS的使用心得,大家应该在Android应用的开发和调试中注意积累。另外,本书实战篇中的7.1.3节也会结合实际应用进一步说明DDMS工具的用法。总之,学会如何灵活地使用DDMS来调试Android应用程序是Android应用开发中必不可少的知识和技巧。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:

华章出版社

官方博客
官网链接