一、Project目录结构
image.png目录文件 | 作用 |
---|---|
.gradle | gradle项目产生文件夹(自动编译工具产生的文件) |
.idea | IDEA项目文件夹(开发工具产生的文件) |
app | module模块 |
build | 构建时生成文件的地方 |
captures | 捕获系统信息的日志目录 |
gradle | gradle环境支持文件夹 |
.gitignore | git源码管理文件 |
build.gradle | gradle项目自动编译的配置文件 |
gradle.properties | gradle运行环境配置文件 |
gradlew | 自动完成 gradle 环境的linux mac 脚本,配合gradle 文件夹使用 |
gradlew.bat | 自动完成 gradle 环境的windows 脚本,配合gradle 文件夹使用 |
local.properties | Android SDK NDK 环境路径配置 |
setting.gradle | gradle 项目的子项目包含文件 |
Test.iml | IDEA 项目文件 |
module(app)
每一个module可看成在Eclipse中的一个Project,里面的文件结构与父类差不多。里面也能包含build.gradle、gradle.properties、setting.gradle 等相关gradle文件,若没有定义,则在项目中使用父类的设置。
gradle目录
里面wrapper目录下有两个文件,里面有一些项目对gradle的配置信息,gradle-wrapper.properties声明了gradle的目录与下载路径以及当前项目使用的gradle版本。默认的路径我们一般不会更改。
image.pngbuild.gradle文件
项目的编译环境配置,可以说是Gradle最主要的配置文件。先来看下里面的内容。
image.png
这里是对Project的配置,是最顶层的配置,在module中同样有一个build.gradle文件,是对module的配置,如果module里没有进行配置,将使用这里的配置信息。一个是声明仓库的源,这里可以看到是指明的jcenter(), jcenter可以理解成是一个新的中央远程仓库,兼容maven中心仓库,而且性能更优。另一个是声明了android gradle plugin的版本。
gradle.properties文件
配置gradle运行环境的文件,比如配置gradle运行模式,运行时jvm虚拟机的大小。在创建的项目中,暂时是没有内容的。
setting.gradle文件
声明当前项目中含有什么module。如果有多个module会以‘,’分开,如:include ‘:app’, ‘:app2’
Module目录结构
目录文件 | 作用 |
---|---|
build | module编译时所生成文件的目录 |
lib | 第三方依赖库所在目录 |
src | module源码所在目录 |
src\andrroidTest | android Studio生成的测试模块,可删除 |
src\main | module代码目录,结构和Eclipse中的差不多了 |
src\test | 单元测试模块,可删除 |
.gitignore | module中的git管理文件 |
app.iml | module中的IDEA 项目文件 |
build.gradle | module自动编译的配置文件 |
proguard-rules.pro | module代码混淆配置文件 |
build目录
module的编译文件目录,编译中生成的中间文件就在这里。
编译最终生成的apk就在build/outputs/apk目录下。
build.gradle文件
这个文件是Module的gradle配置文件,也可以算是整个项目最主要的gradle配置文件。
// 这句是gradle版本的写法,声明是这是一个Android程序。
apply plugin: 'com.android.application'
//Android项目中的配置:
android {
compileSdkVersion 26// 编译android的sdk版本
defaultConfig {
// 应用的包名
applicationId "com.xx.text"
// 允许的最少版本
minSdkVersion 15
// 目标版本
targetSdkVersion 26
// apk的版本
versionCode 1
// apk的显示版本
versionName "1.0"
//测试配置
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
// 表明是在release版本中使用的配置
release {
//签名
signingConfig = signingConfigs. bgctv9512C2Config
// 是否运行混淆
minifyEnabled false
// 混淆的配置文件路径,默认给了我们两个配置文件。
// proguard-android.txt在<sdk目录>/tools/proguard下面,里面已经包含了基本的混淆声明,有兴趣的可以去看下。
// proguard-rules.pro是在module根目录下面,我们可以根据项目去添加。
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
//签名设置
signingConfigs {
bgctv9512C2Config {
storeFile file("../system_signa_file/xxx.keystore")
storePassword "xxx"
keyAlias "xxx"
keyPassword "xxx"
}
}
}
// 表明是依赖库配置
dependencies {
// 表明依赖libs目录下的所有jar包
implementation fileTree(include: ['*.jar'], dir: 'libs')
// 表明在编译项目的测试代码时依赖 (用以声明测试用例库)
testCompile 'junit:junit:4.12'
//测试用例所需要的依赖
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:design:23.1.1'
}
网友评论