Android程序设计实用教程
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.3 第一个Android应用程序

在前面的章节中,我们已经完成了Android开发环境的初步搭建以及虚拟设备AVD的创建,在本节中我们将开发第一个Android应用程序——HelloAndroid。并对Android应用程序结构进行详细了解。Android应用程序开发步骤如下。

步骤一:启动Eclipse,创建HelloAndroid项目。打开Android工程向导:File→New→Project…|Android→Android Project或File →New→Other …|Android→Android Project进入Android工程向导对话框,如图1-11所示。在对话框的Project name文本框中填入项目名称HelloAndroid,依次在项目界面中填入必要的信息,单击Finish按钮,则完成了我们的第一个项目创建。

图1-11 Android工程向导对话框图

注意:工程名称必须唯一,不能与已有的工程重名,应用程序名称,即Android程序在手机中显示的名称,显示在手机的顶部;包名称是包的命名空间,需遵循Java包的命名方法,由两个或多个标志符组成,中间用点隔开,为了包名称的唯一性,可以采用反写电子邮件地址的方式;创建Activity是个可选项,如需要自动生成一个Activity的代码文件,则选择该项。Activity的名称与应用程序的名称不同,但为了简洁,可以让它们相同,表示这个Activity是Android程序运行时首先显示给用户的界面。应用程序版本号是可选项,可以填所选择API版本的版本号。

步骤二:调试项目。在HelloAndroid项目上,单击鼠标右键,则出现运行项目菜单选项,选择Run As→Android Application,如图1-12所示。系统将自动启动虚拟设备,并将应用程序在虚拟设备中运行。观察虚拟设备屏幕,将显示我们开发的第一个Android应用程序项目界面,如图1-13所示。注意,第一次启动模拟器所用时间较长,一般需要3~5分钟。

图1-12 运行项目菜单选项图

图1-13 HelloAndroid运行示意图

前面我们已经能够创建自己的Android应用程序,现在我们需要对应用程序的目录结构、资源管理以及程序权限进行更深入的理解。我们先来看我们前面建立的HelloAndroid项目的目录结构图,如图1-14所示。

图1-14 HelloAndroid项目的目录结构图

src目录中存放的是该项目的源文件,所有允许用户修改的Java文件和用户自己添加的Java文件,都保存在这个目录中。

gen目录下的文件是ADT自动生成的,并不需要人为地去修改,实际上该目录下只定义了一个R.java文件,该文件相当于项目的字典,项目中所涉及到的用户界面、字符串、图片、声音等资源都会在该类中创建其唯一的ID编号,这些编号为整型,以十六进制自动生成。当项目中使用这些资源时,会通过该类得到资源的引用。

Android1.6目录中存放的是支持该项目的JAR包,同时还包含项目打包是需要的META—INF目录。

assets目录用于存放项目相关的资源文件,例如文本文件等。此目录中的资源不能够被R.java文件索引,因此只能以字节流形式进行读取,一般情况下为空。

res目录用于存放应用程序中经常使用的资源文件,包括图片、声音、布局文件及参数描述文件等,包括多个目录,其中以drawable开头的三个文件夹用于存储.png、.9.png、.jpg等图片资源,layout文件夹存放的是应用程序的布局文件,raw用于存放应用程序所用到的声音文件,values存放的则是所有XML格式的资源描述文件,例如字符串资源描述文件strings.xml、样式的描述文件styles.xml、颜色描述文件colors.xml、尺寸描述文件dimens.xml以及数组描述文件arrays.xml等。

default.properties文件为项目配置文件,不需要人为改动,系统会自动对其进行管理。文件里面记录了Android工程的相关设置,例如编译目标和apk设置等。如果需要更改其中的设置,必须通过右击工程名称,在弹出的快捷菜单中选择Properties选项修改。

AndroidManifest.xml文件为应用程序的系统配置文件也叫清单文件。该文件中包含了Android系统运行Android程序前所必须掌握的重要信息,这些信息包括应用程序名称、图标、包名称、模块组成、授权和SDK最低版本等。而且每个Android程序必须在根目录下包含一个AndroidManifest.xml文件。下面我们看一个AndroidManifest.xml文件的基本格式:

      <?xml version="1.0" encoding="utf-8"?>
      <!—在根元素里面定义命名空间  -->
      <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="xsc.text" <!— 定义应用程序包名  -->
          android:versionCode="1"<!— 定义应用程序版本号 -->
          android:versionName="1.0"><!— 定义应用程序版本名称  -->
      <!— 定义应用程序的图标和标签名称  -->
        <application android:icon="@drawable/icon" android:label="@string/
        app_name">
      <!— 声明需要显示的Activity类名和标签名称  -->
            <activity android:name=".HelloAndroidActivity"
                    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>
      <uses-sdk android:minSdkVersion="4" /><!— 定义版本号  -->
      </manifest>

AndroidManifest.xml文件中还包含其他组件,例如Service、BroadcastReceiver、ContentProvider等,分别使用<service></service>标签、<receiver></receiver>标签、<provider></provider>标签来声明,我们在这里就不做详细介绍,在以后的学习中再分别介绍。

在AndroidManifest.xml文件中,还可以为应用程序指定相应的权限,例如网络权限、发送短信的权限、打电话的权限等。应用程序的权限有很多,全部都封装到Manifest.permission类中,读者可以自行查阅API。权限的使用方法是将权限声明的语句添加到AndroidManifest.xml文件中</manifest>标签之前,例如当某个应用程序需要添加发送短信的权限时,只需将“<uses-permission android:name="android.permission.SEND_SMS"/>”添加到AndroidManifest.xml文件</的manifest>标签之前就可以了。应用程序除了声明自身应该具有的权限外,还可以声明访问本应用程序的程序应该具有的权限,这样,其他应用程序需要访问该应用程序时,必须具有该应用程序所需要的权限。例如在<activity></activity>之间添加权限<uses-permission android:name="android.permission.SEND_SMS"/>,那么当其他应用程序需要访问该程序时,就必须具有SEND_SMS权限。在表1-2中列出了部分常用的权限。

表1-2 Android部分常用权限表

本章我们主要介绍了Android概述、Android开发环境的配置与权限、Android项目的建立以及项目目录结构。