购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.1 目录结构分析

在创建HelloAndroid项目时,自动创建了该项目的目录结构,如图2-2所示。

下面将分别介绍图中的各级目录结构。

1.manifests目录

该目录中的AndroidManifest.xml文件是项目的系统配置文件,或称为清单文件,位于项目的根目录下。每个Android程序都必须拥有该文件。它为Android系统提供了启动和运行该项目时所必需要了解的基本信息,有关内容将在2.3节中详细介绍。

图2-2 HelloAndroid项目的

2.java目录

该目录是源代码目录,所有用户自己添加的或者允许用户修改的 java文件全部存放于该目录下。该目录下的 java文件以用户所声明的包自动组织。如果在创建项目时,设定的包为neusoft.edu.cn,那么自动建立的MainActivity.java文件就存放在该包内。程序开发人员可以根据需要,在java目录下添加包或者添加java文件。

3.res目录

该目录是资源目录,包含本项目中所使用的全部资源文件。新建一个项目,res目录下会有4类子目录:drawable、layout、mipmap和values。

drawable:主要存放一些用户自定义形状和背景选择器(Android Selector)。这些资源文件都是.xml类型。背景选择器用于改变ListView或者Button等控件的背景颜色。

layout:存放界面布局文件,文件类型为.xml。新建项目时,已经在该目录下存放了activity_main.xml文件。与Web应用中所使用的HTML文件一样,Android使用XML元素设定屏幕的布局。每个布局文件包含整个屏幕或部分屏幕的视图资源。

mipmap:包含一些应用程序可以用的原生图标文件(*.png、*.gif、*.jpg),Google公司强烈建议使用mipmap存放图片文件。把图片放到mipmap可以提高系统渲染图片的速度,提高图片质量,减轻CPU的压力。

values:存放xml类型的资源描述文件,默认包含颜色(colors.xml)、尺寸(dimens.xml)、字符串(string.xml)和样式(styles.xml)。

Android对资源名称有约束,命名只能使用字母、数字、下画线(_)和点(.),而且不能以数字开头,否则编译会报错。

4.Gradle Scripts

使用Android Studio开发环境创建项目工程时,会在Gradle Scripts目录下面自动创建几个.gradle文件,如图2-3所示。项目工程需要使用.gradle文件来配置,是一个脚本化的工程构建,而非原先ADT中那种Eclipse的可视化构建。gradle的依赖管理能力极其强大,几乎所有的开源项目都可以简单地通过一条compile指令完成依赖的配置。

图2-3 Gradle Scripts目录结构

(1)build.gradle(Project: MyApplication)

这是Android项目根目录下的build.gradle,此文件名是一个约定名字,gradle将依赖它来构建项目。一个项目可以包括多个工程,gradle可以构建多个工程,每个工程子目录都可以有build.gradle文件,如同make构建工具与Makefile文件的关系。

build.gradle(Project:HelloAndroid)文件内容如下:

//Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {

repositories {

jcenter()

}

dependencies {

classpath 'com.android.tools.build:gradle:1.3.0'

//NOTE: Do not place your application dependencies here; they belong

//in the individual module build.gradle files

}

}

allprojects {

repositories {

jcenter()

}

}

task clean(type: Delete){

delete rootProject.buildDir

}

buildscript :用于设置驱动构建过程的代码。

jcenter():声明使用maven仓库。在旧版本中,此处为mavenCentral()。

dependencies:声明使用了Android Studio gradle插件版本。一般升级AS或者导入从Eclipse中生成的项目时需要修改下面gradle版本。

allprojects :设置每一个module的构建过程。在此例中,设置了每一个module使用maven仓库依赖。

(2)build.gradle(Module:app)

该文件位于Android项目根目录下,app是一个gradle工程,该文件用来描述如何构建app工程。gradle可以支持构建多个工程,并设置工程之间的依赖关系。

build.gradle(Module:app)文件内容如下:

apply plugin: 'com.android.application'

android {

compileSdkVersion 23

buildToolsVersion "23.0.2"

defaultConfig {

applicationId "cn.edu.neusoft.helloandroid"

minSdkVersion 21

targetSdkVersion 23

versionCode 1

versionName "1.0"

}

buildTypes {

release {

minifyEnabled false

proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'

}

}

}

dependencies {

compile fileTree(dir: 'libs',include:['*.jar'])

testCompile 'junit:junit:4.12'

compile 'com.android.support:appcompat-v7:23.1.1'

}

apply plugin: 'com.android.application':表示使用com.android.application插件。Gradle以module(模块)方式管理项目,在Gradle构建的Gradle project中通常包含application module(com.android.application)与library module(com.android.library)两种module。“com.android.application”标识是一个android application module,“com.android.library”标识是一个android library module。

android:配置所有android构建过程需要的参数。

compileSdkVersion:用于编译的SDK版本。

buildToolsVersion:用于Gradle编译项目的工具版本。

defaultConfig:Android项目默认设置。

applicationId:应用程序包名。

minSdkVersion:最低支持Android版本。

targetSdkVersion:目标版本,实际上应为测试环境下测试机的Android版本。

versionCode:版本号。

versionName:版本名称。

buildTypes :编译类型,默认有 release和 debug两种类型。可以在此处添加自己的buildTypes。

minifyEnabled :是否使用混淆。在旧版本中为runProguard,新版本之所以换名称,是因为新版本支持去掉没使用到的资源文件,而runProguard这个名称已不合适了。

proguardFiles :使用的混淆文件,可以使用多个混淆文件。此例中,使用了SDK中的proguard-android.txt文件以及当前module目录下的proguard-rules.pro文件。

dependencies :用于配置引用的依赖。

compile fileTree(dir: 'libs',include:['*.jar']):引用当前module目录下的libs文件夹中的所有.jar文件。

compile 'com.android.support:appcompat-v7:23.1.1' :引用23.1.1版本的appcompat-v7(也就是常用的v7 Library项目)。

(3)settings.gradle文件

这个文件也是gradle约定命名的,默认只有一行代码include ':app',表示当前工程只有一个模块,app是目录名,同时也作为工程名。当有多个工程的时候,可以在此添加。 P09/9N6Q01YW7Wxx+qKk1UIbenPF2FDrpNfFxvcCS/mMYz7iGhhpqmlr3DJlSxcF

点击中间区域
呼出菜单
上一章
目录
下一章
×