首先说一下gradle,gradle是一种构建工具,AndroidStudio用它来构建项目。AndroidStudio在创建项目的时候会自动去下载需要的gradle版本,也可以自己手动的去下载,下载下来的gradle会默认放在C:\用户\.gradle\wrapper\dists下边。
Project的目录结构:
新建的一个AndroidStudio项目,project目录结构如下:
1、.gradle目录:
gradle运行的时候自动生成的目录,一般不做任何修改。
2、.idea目录:
Intellij IDEA运行的时候生成的目录,一般不做修改。(Intellij IDEA是JetBrains公司推出的Java集成环境,AndroidStudio是基于IDEA Commutity Edition开发的)
3、module
每一个module可看成Eclipse中的一个Project,里面的文件结构与父类差不多。
4、build目录
编译时产生文件,不需要修改。
5、gradle目录
里面有一些项目对gradle的配置信息,其中wrapper.properties里面包含了一些gradle的下载路径以及当前使用的gradle版本信息。
6、.gitignore文件
git对项目文件管理,可以在里面添加一些你不希望纳入git管理的文件。AndroidStudio已经自动帮我们添加了一些不需要的文件,我们可以按照同样的方式来加自己的文件。
匹配符的解释:
# 用于注释
logs/:忽略根目录下的logs目录,包括logs目录下的所有子目录和文件
/logs.txt:忽略根目录下的logs.txt文件
* 匹配0个或多个任意字符(如:*.txt表示所有的txt文件)
?匹配一个字符(如:test?.txt可以匹配到testk.txt、testl.txt等)
[]匹配数组中指定的字符(如:test[k,z]可以匹配testk.txt、testz.txt)
[n-m]匹配所有在这两个字符范围内的字符。
7、build.gradle文件
项目的编译环境配置,可以说是Gradle最主要的配置文件。这里是对Project进行的配置,是最顶层的配置,在Module中同样有一个build.gradle文件,是对Module进行的配置,如果Module里没有进行配置,将使用这里的配置。
// Top-level build file where you can add configuration options common to all sub-projects/modules.
apply from: 'buildsystem/dependencies.gradle'
//buildscript中声明的是gradle脚本自身需要使用的资源
buildscript {
//声明仓库源,android有两个标准的library文件服务器,一个jcenter一个maven,两者毫无关系
repositories {
//是一个类似于github的仓库,声明了此配置就可以轻松的引用jcenter上的开源项目
jcenter()
//Maven仓库,包括Maven本地仓库、中央仓库以及自定义地址仓库
mavenLocal()
mavenCentral()
maven { url "https://oss.sonatype.org/content/repositories/snapshots" }
google()
}
//声明Android gradle plugin的版本
dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
classpath 'com.jakewharton:butterknife-gradle-plugin:9.0.0-SNAPSHOT'
}
}
allprojects {
repositories {
mavenCentral()
jcenter()
maven {
url 'https://maven.google.com'
}
google()
}
}
//声明任务。声明一个任务,任务名叫clean,任务类型是Delete(也可以是Copy)
//这段代码的作用是每当修改settings.gradle文件后点击同步,就会删除rootProject.buildDir
//下的文件(实际是清除External Libraries里的包然后又添加了一次)
task clean(type: Delete) {
delete rootProject.buildDir
}
8、FirstProject.iml
编译项目的时候生成的文件,其名为"项目名.iml",iml文件是AndroidStudio识别项目的配置文件。
9、gradle.properties文件
配置gradle运行环境文件,如配置gradle的运行模式、运行时jvm虚拟机的大小。
10、gradlew和gradlew.bat文件
分别是linux下的shell脚本和windows下的批处理文件,他们的作用是根据gradle-wrapper.properties文件中的distributionUrl下载对应的gradle版本。这样就可以保证在不同的环境下构建时都是使用的统一版本的gradle,即使该环境没有安装gradle也可以,因为gradle wrapper会自动下载。
11、local.properties文件
配置android NDK、SDK的地方,这个路径根据不同的电脑可能显示不一样,一般不会纳入源代码管理之中。
12、settings.gradle文件
声明当前项目中含有什么module。如果有多个module,会以;分开。
Module的目录结构:
1、build文件
module编译时所生成文件的目录。我们编译最终生成的apk就在build/outputs/apk目录下,里面包含了app-debug.apk、app-debug-unaligned.apk、app-release-unaligned.apk三种apk。
2、lib目录
第三方库存放目录,我们把需要的第三方库jar文件放在这里,*.so也放在这里。可以在Project Structure中管理它的依赖关系,也可以在build.gradle中直接修改。
3、src目录
3.1、src\androidTest:android studio生成的测试模块,可删除。
3.2、src\main:module代码目录
3.3、main\test:单元测试模块,可删除。
4、.gitignore文件
module中的git管理文件,可对module单独管理。
5、app.iml文件
同Project中的*.iml一样,管理module的配置。
6、build.gradle文件
这个文件是Module的gradle配置文件,也可以算是整个项目中最主要的gradle配置文件。详细介绍可以看http://blog.csdn.net/qiutiandepaomo/article/details/65440543
7、proguard-rules.pro文件
module中的代码混淆配置文件。