
2.1 第一个应用程序
2.1.1 创建Android项目
创建Android项目的操作步骤如下。
(1)打开Android Studio,新建一个工程,如图2.1所示。

图2.1 新建工程
(2)配置新工程,如图2.2所示。
(3)设置应用运行模式。这里选择“Phone and Table”,向下最低支持的SDK选择“API 15”。在我们选择相应的API时,可以看到这个应用能支持的设备比例,如图2.3所示。
(4)活动添加。这里选择“Blank Activity”,如图2.4所示。

图2.2 配置新工程

图2.3 设置运行模式

图2.4 活动添加
(5)活动配置。这里选择的是默认设置,如图2.5所示。

图2.5 活动配置
(6)工程建立完成,如图2.6所示。

图2.6 工程建立完成
(7)运行。启动模拟器,运行刚刚创建的 HelloWorld 项目,可以通过目录栏“Run”→“Run‘app’”来运行,也可以通过或者按组合键Shift+F10快速启动。此时,会打开Device Chooser窗口,如图2.7所示。若使用已有的安卓设备,选择A;若使用虚拟设备,选择B。这里选择 B 模式,若你先前没有创建虚拟的设备,则需要创建虚拟设备;若你已创建,可以选择已创建的虚拟设备,也可以新创建一个新的虚拟设备。模拟器启动的界面如图2.8所示。

图2.7 设备选择

图2.8 启动模拟器运行项目
我们可以看到启动的模拟器上显示了一段文字,此时尚未在项目中输入任何代码,这是项目默认的显示。
2.1.2 Android项目结构
Android Studio中的文件管理功能非常便利和强大,其提供八种查看项目文件的模式,这里主要介绍Project模式,如图2.9所示。
在Project模式下,会显示当前所有的Module,如图2.10所示。

图2.9 项目文件的模式

图2.10 Project面板
Project 目录结构按功能分为三个主要部分,分别是编译系统、配置文件以及应用模块,如表2.1所示。
表2.1 Project目录结构介绍

续表

app文件夹如图2.11所示。

图2.11 app文件夹
app文件夹结构的介绍如表2.2所示。
表2.2 app文件夹结构介绍

续表

2.1.3 自动构建工具Gradle
在上一节中,我们在Android Studio中创建了第一个项目“HelloWorld”,在项目创建时会加载Gradle文件,如图2.12所示。Gradle 是以 Groovy 语言为基础,面向Java应用为主,基于DSL(领域特定语言)语法的自动化构建工具。它可以自动化地进行软件构建、测试、发布、部署、软件打包,同时也可以完成项目相关功能,如生成静态网站、生成文档等。另外,Gradle集合了Ant的灵活性和强大功能,以及Maven的依赖管理和约定,从而创造了一个更有效的构建方式。凭借Groovy的DSL和创新打包方式,Gradle提供了一个可声明的方式,并在合理默认值的基础上描述所有类型的构建。Gradle目前已被选作许多开源项目的构建系统,如图2.13所示。

图2.12 Gradle文件加载

图2.13 Android Studio中的Gradle文件
1.HelloWorld/app/build.gradle
这个文件是app文件夹下这个Module的gradle配置文件,也可以算是整个项目最主要的gradle配置文件,其在HelloWorld中对应的内容如下。
//声明是Android程序
apply plugin: 'com.android.application'
android {
//编译SDK的版本
compileSdkVersion 23
// build tools的版本
buildToolsVersion "23.0.2"
defaultConfig {
//应用的包名
applicationId "com.example.administrator.helloworld"
minSdkVersion 21
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
//是否进行混淆
minifyEnabled false
//混淆文件的位置
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard
rules.pro'
}
}
}
dependencies {
//编译libs目录下的所有jar包
compile fileTree(dir: 'libs',include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:design:23.1.1'
}
2.HelloWorld/gradle
这个目录下有一个 wrapper 文件夹,里面有两个文件。以下主要介绍gradle- wrapper.properties文件的内容。
#Sat Jan 23 15:58:39 CST 2016
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.4-all.zip
可以看到里面声明了gradle的目录与下载路径以及当前项目使用的gradle版本,对于这些默认的路径我们一般不会更改。这个文件指明的gradle版本为错误时,可能是导致很多导包失败的原因之一。
3.HelloWorld/build.gradle
这个文件是整个项目的gradle基础配置文件,其在HelloWorld中对应的内容如下。
//构建文件,您可以在其中添加对所有子项目/模块通用的配置选项
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.3.0'
//注意:不要让您的应用程序依赖关系放在这里
//在单个模块build.gradle文件中
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
上述内容主要包含了两个方面:一个是声明仓库的源,这里可以看到是指明的jcenter(),之前版本则是mavenCentral()。jcenter可以理解成一个新的中央远程仓库,兼容maven中心仓库,而且性能更优。另一个是声明了Android Gradle Plugin的版本,Android Studio版本必须要求支持Gradle Plugin 1.3的版本。
4.HelloWorld/setting.gradle
这个文件是全局的项目配置文件,里面主要声明一些需要加入 Gradle 的 Module,其在HelloWorld中对应的内容如下。
include ':app'
文件中的 app是Module,如果还有其他Module都需要按照如上格式加进去。
2.1.4 辅助工具介绍
Android中还有其他一些辅助工具,下面进行详细介绍。
● AAPT:即Android Asset Packaging Tool,位于SDK的tools目录下。该工具可以将AndroidManifest.xml与其他XML文件编译成二进制文件,它会产生R.java以使资源可以在Java代码中引用。通常不需要直接使用aapt工具,IDE插件和编译脚本可以利用它打包apk文件来构成一个Android应用程序。
● Navigation Editor:它是一个可视化创建和浏览 Android 应用的结构和布局文件的工具。开发者可以使用 Navigation Editor 来快速创建应用原型。同时,设计师也可以在不用写任何代码的情况下在真实设备上查看他们的设计成果。这个工具能够让设计师和开发者有更好的协作。
● ADB:即Android Debug Bridge,位于SDK的platform-tools目录下。该工具可以直接管理Android模拟器或真实的Android设备。其主要功能有:查询设备信息和数据库,安装程序到设备、映射端口、移动文件、利用日志系统等。
● android工具:它是一个脚本,用于创建和管理Android Virtual Devices。
● Android Device Monitor:它是一个提供了图形化界面的可以对Android应用进行调试和分析的独立的工具。在Android Studio中,Monitor工具不需要IDE环境。
● Android层级阅览器:即Hierarchy Viewer,它是一个可视化的工具,能够显示各组件的布局及其联系,从而帮助开发者设计及调试用户界面。
● Draw Nine-patch:它可以让开发者设计能够拉伸的PNG图片。
● DDMS:即Dalvik Debug Monitor Service,它通过Android开发工具插件集成在Android Studio中,可以通过该工具查看和管理运行在设备上的进程和线程、查看堆栈数据、连接到进程进行调试等。
● sqlite3:它可以对应用程序的数据库进行操作。
● TraceView:它可将Android应用程序产生的跟踪日志转换为图形化的分析视图。
● logcat:在开发过程中,通常需要对应用程序进行调试,logcat是一个非常重要的日志输出工具。