Android Studio是采用Gradle来构建项目的,一个Android项目中包含两个build.gradle文件,如下图:
(1)最外层目录下build.gradle文件
最外层目录下的build.gradle文件代码如下:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.2'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
忽略不明白的语法,从字面上我们可以看出,关键有两部分的代码,repositories闭包和dependencies闭包。
1、repositories闭包
该闭包中声明了jcenter()的配置,其中jcenter是一个代码托管仓库,上面托管了很多Android开源项目,在这里配置了jcenter后我们可以在项目中方便引用jcenter上的开源项目。
2、dependencies闭包
该闭包使用classpath声明了一个Gradle插件,由于Gradle并不只是用来构建Android项目,因此此处引入相关插件来构建Android项目,其中'2.2.2'为该插件的版本号,可以根据最新的版本号来调整。
(2)模块目录下build.gradle文件
项目中app模块下的build.gradle文件中的内容如下:
apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.wkui.douban.easysearch"
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:25.2.0'
testCompile 'junit:junit:4.12'
}
从文件内容可以看出,主要分为三大部分:
1、apply plugin
文件中第一行使用apply plugin表示应用了一个插件,该插件一般有两种值可选:
一种为'com.android.application',表示该模块为应用程序模块,可以直接运行;另一种为'com.android.library',表示该模块为库模块,只能作为代码库依附于别的应用程序模块来运行。
2、android闭包
这个闭包主要为了配置项目构建的各种属性,compileSdkVersion用于指定项目的编译版本,25表示使用Android 7.1系统的SDK编译。buildToolsVersion用于指定项目构建工具的版本。android闭包中嵌套了defaultConfig闭包和buildTypes闭包:
1) defaultConfig闭包
对项目的更多细节进行配置,其中applicationId指定了项目的包名,我们可以通过修改这个值来修改项目的包名。
minSdkVersion指定项目最低兼容的版本,这里指定为15,表示最低兼容到Android 4.0系统。
targetSdkVersion指定的值表示在该目标版本上已经做过充分测试,系统会为该应用启动一些对应该目标系统的最新功能特性,Android系统平台的行为变更,只有targetSdkVersion的属性值被设置为大于或等于该系统平台的API版本时,才会生效。例如,若指定targetSdkVersion值为22,则表示该程序最高只在Android5.1版本上做过充分测试,在Android6.0系统上(对应targetSdkVersion为23)拥有的新特性如系统运行时权限等功能就不会被启用。
2) buildTypes闭包
这个闭包主要指定生成安装文件的主要配置,一般包含两个子闭包,一个是debug闭包,用于指定生成测试版安装文件的配置,可以忽略不写;另一个是release闭包,用于指定生成正式版安装文件的配置。
上面的代码中省去了debug闭包的内容,只写了release闭包。其中minifyEnabled表明是否对代码进行混淆,true表示对代码进行混淆。proguardFiles指定混淆的规则文件,这里指定了proguard-android.txt文件和proguard-rules.pro文件两个文件,proguard-android.txt文件为默认的混淆文件,里面定义了一些通用的混淆规则。proguard-rules.pro文件位于当前项目的根目录下,可以在该文件中定义一些项目特有的混淆规则。
3、dependencies闭包
该闭包定义了项目的依赖关系,一般项目都有三种依赖方式:本地依赖、库依赖和远程依赖。本地依赖可以对本地的jar包或目录添加依赖关系,库依赖可以对项目中的库模块添加依赖关系,远程依赖可以对jcener库上的开源项目添加依赖关系。
下面对该闭包中定义的语句进行解释。
第一行的compile fileTree是一个本地依赖声明,表示将libs目录下所有.jar后缀的文件都添加到项目的构建路径当中。
第二行的compile语句为 远程依赖声明,'com.android.support:appcompat-v7:25.2.0'为一个标准的远程依赖库格式,其中com.android.support为域名部分,用于区分不同公司的库;appcompat-v7为组件名称,用于区分同一个公司的不同库;25.2.0为版本号,用于区分同一个库的不同版本。加上这句声明后,Gradle在构建项目时会先检查一下本地是否已经缓存过该库,若没有缓存则自动联网下载,下载后自动添加到项目的构建路径中去。
testCompile语句为声明测试用例库的,暂时没有用到。这里没有用到库依赖声明,若有一个库模块名为helper,那么添加这个库依赖关系需要加入compile project(':helper')这句声明。
作者:sunnygarden
链接:http://www.jianshu.com/p/9c27dd7938b7
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
分享到:
相关推荐
配置Android Studio的Gradle插件涉及以下几个步骤: 1. **设置Gradle版本**:在Android Studio中,Gradle版本通常在项目的`gradle-wrapper.properties`文件中指定。你需要将`distributionUrl`的值更改为Gradle ...
要解决安卓源码无法在 Android Studio 中运行的问题,我们需要修改三个关键文件:build.gradle、app 文件夹中的 build.gradle 和 gradle/wrapper/gradle-wrapper.properties 文件。通过这些修改,我们可以让项目正常...
- **gradle.properties**:全局配置文件,用于定义项目级别的Gradle属性,如: ```properties # 指定SDK路径 sdk.dir=D:\\sdk ``` - **sdk.dir**:指定Android SDK的安装目录。 ##### 4. 忽略不必要的文件 在...
在Android Studio中配置NDK环境主要涉及以下几个步骤: 1. **安装NDK**:确保你已经下载并安装了Android NDK。你可以从Android开发者官方网站下载适合你的平台版本。安装完成后,需要在Android Studio的`local....
在Android Studio中,你可以通过调整项目的build.gradle文件来配置Gradle插件,以实现对构建过程的定制。例如,你可以定义依赖项、指定编译SDK版本、处理资源文件等。 Gradle-4.4版本引入了几个关键特性: 1. **...
2. 检查`build.gradle`文件,这通常是定义构建脚本和依赖的地方,确保你的Android Studio版本与项目所需的Gradle版本兼容。 3. 如果项目中有自定义的库或者依赖,确保这些库已经正确地添加到本地或者远程仓库,并且...
在这个项目中,我们看到了几个关键文件: 1. `gradlew.bat` 和 `gradlew`:这是Gradle的可执行脚本,用于自动化构建过程,如编译、打包和部署应用。 2. `build.gradle`:这是项目的构建配置文件,定义了应用的依赖...
可以通过在用户目录下的.gradle文件夹中新建或编辑一个gradle.properties文件,并添加以下内容: ``` org.gradle.daemon=true ``` 这行设置能够让Gradle使用守护进程模式运行,一般能够提升构建速度并减少卡顿。 ...
本示例“Android Studio多module AAR示例”是关于如何在Android Studio中创建和使用AAR(Android Archive)库的一个实例,这对于模块化开发至关重要。AAR文件是一种特殊的ZIP格式,包含了Android库项目的编译结果,...
**顶层`build.gradle`** 文件中主要包含以下几个部分: - **Repositories** 配置,用于指定依赖库的来源。 - **Dependencies** 配置,用于指定所需的Android插件。 - **AllProjects** 配置,用于设置顶级项目配置。...
- 打开 Android Studio,找到项目的 `build.gradle` 文件(位于项目根目录下)。 - 在 `buildscript` 块中指定使用的 Gradle 版本号,如下所示: ```groovy buildscript { repositories { google() jcenter()...
这里需要确保组件的`build.gradle`文件中的配置与你的主项目(`app`目录下的`build.gradle`)保持一致,特别是以下几个关键属性: - `compileSdkVersion`: 表示编译时使用的Android SDK版本。 - `buildToolsVersion`...
5. **同步项目**:保存`build.gradle`文件后,Android Studio会提示你同步项目。点击“Sync Now”以应用新的依赖关系。同步过程可能需要几分钟时间。 6. **使用.jar库**:一旦同步完成,.jar库就已经成功添加到项目...
Gradle化过程涉及以下几个关键知识点: 1. **Gradle插件**:在Android项目中,我们需要使用`com.android.application`或`com.android.library`插件,分别用于构建应用和库项目。这些插件将Gradle与Android SDK集成...
在 Android Studio 中配置 Gradle,开发者通常会在项目的根目录下创建一个 `gradle-wrapper.properties` 文件,其中定义了 Gradle 包的 URL 和版本。例如: ```properties distributionUrl=...
此外,这个示例项目还可能包含了如何配置`build.gradle`文件以启用测试的相关设置。例如,添加依赖库`androidTestImplementation 'com.jayway.android.robotium:robotium:5.+'`,并设置测试编译源代码路径`...
5. **gradle.properties**: 此文件用于存储构建相关的属性,如Gradle的缓存路径、版本号等。开发者可以在此自定义配置,以适应个人或团队的需求。 6. **local.properties**: 这个文件存储本地SDK的路径和模拟器的...
在Android项目中,Gradle配置主要分布在几个关键文件中,包括`build.gradle`、`settings.gradle`和`gradle.properties`等。 #### build.gradle 此文件分为两个层次:项目级别的`build.gradle`和模块级别的`build....
- 在Android Studio中,需要在项目的`build.gradle`文件中指定Gradle版本,如`classpath 'com.android.tools.build:gradle:3.x.y'`,这里的x.y应与本地安装的Gradle版本相匹配。 - Gradle的依赖管理允许开发者声明...