本节书摘来自异步社区《Android 应用案例开发大全(第3版)》一书中的第1章,第1.3节Android开发环境的搭建,作者 吴亚峰 , 苏亚光 , 于复兴,更多章节内容可以访问云栖社区“异步社区”公众号查看
1.3 Android开发环境的搭建
本节主要讲解基于Eclipse的Android开发环境的搭建(包括SDK的下载和SDK的配置)、模拟器的创建和运行,以及Android开发环境搭建好之后,对其开发环境进行测试并创建第一个Android应用程序Hello Android等相关知识。
1.3.1 Android SDK的下载
前面已经对Android平台进行了简单的介绍,从本小节开始,将带领读者逐步搭建自己的开发环境。Android SDK是开发Android应用程序的基础开发环境,其本身是免费的,下面将向读者介绍Android SDK的下载,其具体步骤如下。
(1)首先在浏览器中输入http://developer.android.com/sdk/index.html,打开Android SDK的官方下载网站,如图1-5所示。点击网页右下角被椭圆圈中的内容为“Download the SDK……”的区域,进入SDK的下载页面,如图1-6所示。
(2)进入到SDK的下载页面后,按照图1-6中被椭圆圈中的区域进行下载项选择(这里选择的是Windows下的32位版本),然后点击网页正下方被椭圆圈出的内容为“Download the SDK……”的区域进行下载,此时浏览器会弹出下载对话框(这一点不同的浏览器会有所不同),如图1-7所示。
完成以上步骤,等待Android SDK下载完成,就可以进行环境搭建的下一步工作了,也就是对Android SDK进行相关的配置,这些内容将在下一小节中向读者介绍。
1.3.2 Android SDK的配置
下载完成后,就可以对Android SDK进行解压和配置了,主要步骤如下。
(1)Android SDK下载成功后,会得到一个名称为“adt-bundle-windows-x86的压缩包(随选择下载版本的不同,此名称可能不同)。将此压缩包解压得到同名文件夹,如图1-8所示。
(2)打开解压后的文件夹,如图1-9所示。其中名称为“eclipse”的子文件夹为绑定了ADT插件的用于Android应用程序开发的集成开发环境——Eclipse。另外一个名称为“sdk”的子文件夹则是要进行配置的Android SDK。
(3)打开“eclipse”子文件夹,如图1-10所示。接着点击其中的“eclipse.exe”,启动Eclipse集成开发环境,此时会出现如图1-11所示的界面。
(4)图1-11所示界面是提醒读者设置自己的项目工作区路径,这里采用的是“E: 软件workspace”。建议读者的工作区路径设置和这里介绍的保持一致,这样在进行后继案例的学习时可能会方便不少,当然读者也可以采用自己特定的工作区路径。
提示
若读者的工作区路径与笔者这里设置的不一样,也是可以的。但导入的Android项目都需要对构建器进行修改才能正常编译运行。如何修改构建器会在后面进行介绍,读者到时注意一下即可。
(5)指定完工作区路径后,就进入了Eclipse的主界面,如图1-12所示。在此界面中选择“Window”菜单下面的“Preferences”子菜单项,系统将弹出“Preferences”配置界面,如图1-13所示。
(6)选择“Preferences”配置界面左侧列表中的“Android”选项(如图1-13步骤(1)所示),然后点击界面右上侧的“Browse…”按钮(如图1-13步骤(2)所示),在弹出的文件浏览界面中选中前面解压得到的“sdk”目录(如图1-13步骤(3)所示)。
(7)选中“sdk”目录后,点击文件浏览界面中的确定按钮(如图1-13步骤(4)所示)。等文件浏览界面消失后,再点击“Preferences”配置界面中右下侧的“Apply”按钮(如图1-13步骤(5)所示),若此时看到图1-13中列出了多个Android版本的信息(如图1-13中“配置成功的标志”框所圈中的部分),则说明配置成功。
(8)最后点击“Preferences”配置界面中右下侧的“OK”按钮(如图1-13步骤(6)所示)即完成了整个Android SDK的配置。
(9)图1-13中只有“Android 4.4W”版本,如果需要其他的版本,可点击Eclipse主界面中的“Android SDK Manager”按钮,进入加载界面,如图1-14所示。加载完成后,进入Android SDK Manager界面,如图1-15所示,在该界面勾选需要下载的SDK版本,再单击“Install……”按钮进行下载、安装即可。
提示
在图1-15SDK下载界面中单击“Install……”进行下载安装SDK版本时,需要联网下载,且下载速度较慢,请读者耐心等待。
1.3.3 创建并启动模拟器
开发环境搭建基本完成后,在正式开发Android应用程序之前,还有一个很重要的工作就是创建模拟器。模拟器可以在初学者没有实际设备的情况下在PC上对应用程序进行简单的运行测试,很大程度上降低了学习的成本。模拟器的创建很简单,其具体步骤如下。
(1)首先在Eclipse中单击图片 17(Android Virtual Device Manager)按钮,如图1-16所示。单击图片 18按钮后,系统将弹出“Android Virtual Device Manager”对话框,如图1-17所示。
(2)在弹出的Android SDK and AVD Manager对话框中单击“New”按钮(如图1-18所示),系统将弹出Create new Android Virtual Device(AVD)对话框,如图1-19所示。
(3)在Create new Android Virtual Device(AVD)对话框中输入模拟器的名称(这里输入的是android),下拉Target列表选中Android4.2.2-API Level 17,在Internal Storage面板中输入100(代表内部存储容量为100MB),在SD Card面板中的Size文本框中输入100(代表SD卡容量为100MB),如图1-20所示。
(4)然后设置模拟器显示屏分辨率为5.1"WVGA(480800),最后勾选Use Host GPU开启本地GPU渲染支持,如图1-20所示。模拟器配置完成后,单击“OK”按钮,即可完成创建指定版本的Android SDK模拟器。
(5)创建完Android SDK的模拟器后,在Android SDK and AVD Manager对话框中就可以显示出创建的Android SDK模拟器了,如图1-21所示。在Android SDK and AVD Manager对话框中选中创建的Android模拟器,单击“Start”按钮(如图1-22所示),弹出Launch Options对话框,如图1-23所示。
(6)在弹出的Launch Options对话框中单击“Launch”按钮(如图1-24所示)系统将启动Android SDK模拟器,启动完成后的效果如图1-25所示。
提示
运行模拟器时可能会很慢,有时甚至可能达到几分钟时间,如果没有报错,请读者耐心等待。
1.3.4 第一个Android程序
前面小节已经介绍了Android的来龙去脉、Android SDK的下载、Android SDK的配置和创建及启动模拟器等重要内容,接下来将带领读者构建第一个Android应用程序并对该程序进行简单的讲解,其具体内容如下。
1.创建第一个Android应用程序
在学习各种编程语言时,写的第一个程序都是Hello World。在本小节中将详细讲述如何在Android开发中开发自己的第一个Android程序——Hello Android。希望读者通过本小节的学习,熟悉Android程序的创建。其具体步骤如下。
(1)点击eclipse.exe,启动Eclipse,依次选择“File/New/Android Application Project”,如图1-26所示。或者点击图片 30按钮后,系统将弹出新建项目对话框,如图1-27所示。
(2)在新建项目对话框中选择“Android/Android Application Project”,如图1-28所示,然后单击“Next”按钮,执行下一步,即弹出“New Android Application”对话框,如图1-29所示。
(3)在“New Android Application”对话框中输入应用程序的名称(在这里输入的是Sample_1_1),然后在Project Name中输入项目名称(这里输入的名称与Application Name中的相同,当然也可以不同),同时在Package Name中输入应用程序的包名(这里输入的是wyf.ytl),如图1-29所示。
(4)接着在Minimum Required SDK中选择应用程序最低版本(这里选择的是Android 2.2版本),最后在Target SDK中选择应用程序的目标版本,都填完后,整体情况如图1-29所示。
提示
创建项目时输入项目包名时,需要至少使用二级包名,否则在该对话框上方会显示“Package name must have at least two identifiers.”的错误信息。
(5)单击“Next”按钮后进入如图1-30所示的界面,根据需要勾选是否创建自定义图标,勾选“Create activity”,根据需要也可更改默认的项目路径,最后单击“Next”按钮执行下一步。接着在如图1-31所示的界面中选择Activity样式,此处选择的是“Blank Activity”,单击“Next”按钮执行下一步。
(6)在如图1-32所示的界面中输入Activity Name——Hello Android和Layout Name——main,单击“Finish”按钮完成项目的创建。此时在Eclipse的Project Explorer界面中会自动添加创建的项目Sample_1_1,其目录结构如图1-33所示。
(7)在项目名上单击鼠标右键,然后依次选择“Run As/Android Application”即可运行刚才创建的HelloAndroid项目,该项目在模拟器上的运行效果如图1-34和图1-35所示。
提示
因为有很多程序或者游戏是横屏模式的,所以在程序调试过程中,可能需要将模拟器切换成横屏模式,读者可以通过使用快捷键Ctrl+F12来切换模拟器的横、竖屏模式,HelloAndroid程序在横屏模拟器中运行效果如图1-35所示。
2.HelloAndroid的简单讲解
通过前面的学习,读者已经能够创建并运行简单的Android程序了,但可能对Android项目还不够了解,接下来将通过对HelloAndroid程序的详细介绍使读者了解Android项目的目录结构以及HelloAndroid的运行机理。
(1)首先将介绍一下HelloAndroid项目中各个目录和文件的作用,正确理解Android项目中各个目录和文件的作用,可以使读者对Android项目的运行机理有一个更加深刻的印象,对以后开发其他Android项目有很大帮助。
src目录:该目录用来存放应用程序中所有的源代码,其中代码的源文件一般是存放在相应的包下面。在开发Android应用程序时,大部分时间都是在编写src中的源代码,src 中的源代码可以说是Android应用程序的基础。
gen目录:该目录下一般只有一个文件,即R文件。该文件是由ADT自动产生的,存放的是应用程序中所使用的全部资源文件的ID,在应用程序开发过程中只是使用R文件,一般不需人工修改该文件。
assets目录:该目录中存放Android应用程序中使用的外部资源文件,例如音频文件、视频文件、数据文件等。在Android应用程序中可以通过输入或输出流对asserts目录中的文件进行读写操作,从而使Android应用程序更加具有吸引力。
res资源目录:该目录下一般有drawable系列文件、layout布局文件以及values资源描述文件,这些文件用来存放Android应用程序中所需的图片资源、界面描述文件以及资源描述文件等。后面将对这些文件夹逐一进行介绍。
drawable系列文件夹:一般有drawable-hdpi、drawable-mdpi、drawable-ldpi3个文件夹,这3个文件夹分别用来存放不同分辨率目标设备的图片资源。当应用程序在目标设备上运行时,系统会自动根据目标设备的分辨率选择对应文件夹下的图片。
layout文件夹:该文件夹下包含了所有使用xml格式的界面描述文件,这些文件主要用于表述应用程序中用户界面的布局。
values文件夹:该文件夹中包含了一些xml格式的资源描述文件,一般包括string.xml(字符串资源)、colors.xml(颜色资源)、style(样式资源)等。
AndroidManifest.xml,该文件是整个程序的系统控制文件,是每个应用程序都不可缺少的。它描述了应用程序有哪些组件、哪些资源、哪些权限等。
(2)上面介绍了HelloAndroid项目中各个目录和文件的作用,接下来介绍的是该项目的系统控制文件AndroidManifest.xml,该文件的主要功能为定义该项目的使用架构、版本号、SDK的版本以及声明Activity组件等,其具体代码如下。
1 <?xml version="1.0" encoding="utf-8"?> <!--XML的版本以及编码方式-->
2 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
3 package="wyf.ytl"
4 android:versionCode="1"
5 android:versionName="1.0" > <!--该标记定义了该项目的使用架构,所在的包以及版本号-->
6 <uses-sdk android:minSdkVersion="14"
7 android:targetSdkVersion="17" /> <!-- 声明SDK的版本 -->
8 <application android:icon="@drawable/ic_launcher"
9 android:label="@string/app_name"
10 android:theme="@style/AppTheme"><!-- 定义了该项目在手机中的图标以及名称 -->
11 <activity android:name="wyf.ytl.MainActivity"
12 android:label="@string/app_name" > <!-- 声明Activity组件 -->
13 <intent-filter>
14 <action android:name="android.intent.action.MAIN" />
15 <category android:name="android.intent.category.LAUNCHER" />
16 </intent-filter> <!-- 声明Activity可以接受的Intent -->
17 </activity>
18 </application>
19 </manifest>
说明
定义了一个名为HelloAndroid的Activity以及该Activity能够接受的intent,并且给出了程序的版本、编码方式、用到的架构、该程序所在的包与版本号、程序的SDK版本程序、在手机上的显示图标、显示名称以及显示风格等。
(3)上面介绍了HelloAndroid项目的系统控制文件AndroidManifest.xml,接下来介绍的是该项目的布局文件main.xml,该文件的主要功能为声明XML文件的版本以及编码方式、定义布局并添加控件TextView,其具体代码如下。
1 <?xml version="1.0" encoding="utf-8"?> <!-- XML的版本以及编码方式 -->
2 < RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 android:orientation="vertical"
4 android:layout_width="fill_parent"
5 android:layout_height="fill_parent" > <!--定义了一个布局,布局方式是垂直的-->
6 <TextView
8 android:layout_width="fill_parent"
9 android:layout_height="wrap_content"
10 android:text="@string/hello" /> <!--向布局中添加一个TextView控件-->
11 </ RelativeLayout >
说明
定义了布局方式为RelativeLayout,且左右和上下的填充方式为fill_parent,并向该布局中添加了一个TextView控件,其宽度和高度模式分别为fill_parent、wrap_content,在TextView控件显示的内容为string.xml中的hello的内容。
(4)上面介绍了本项目的布局文件main.xml,接下来将为读者介绍的是项目的主控制类HelloAndroid。本类为继承自Android系统Activity的子类,其主要功能为调用父类的onCreate方法,并切换到main布局,其具体代码如下。
1 package wyf.ytl;
2 import android.app.Activity; //引入相关类
3 import android.os.Bundle;
4 public class HelloAndroid extends Activity { //定义一个Activity
5 @Override
6 public void onCreate(Bundle savedInstanceState) { //重写的onCreate回调方法
7 super.onCreate(savedInstanceState); //调用基类的onCreate方法
8 setContentView(R.layout.main); //指定当前显示的布局
9 }}
说明
对继承自Activity子类的声明,重写了Activity的onCreate回调方法,在onCreate方法中先调用基类的onCreate方法,然后指定用户界面为R.layout.main,对应的文件为res/layout/main.xml。