本章将解答下面几个问题
1. gradle是个什么鬼?
2. 为什么要使用gradle?
3. android studio中gradle的结构是什么样子的?
gradle是个什么鬼?
gradle是一种先进的编译系统,以及先进的构建工具,它允许通过插件来创建自定义生成的逻辑。
- 基于Groovy的特定语言(DSL),用来描述和操纵构建逻辑
- 基于Groovy的构建文件,允许通过DSL声明各种元素,并使用代码来操纵DSL元素来提供定制逻辑。
- 通过Maven或Ivy建立依赖管理。
- gradle非常灵活,提供最佳实践,但不会强制按这种方式使用。
- 插件可以暴露自己的DSL和API,以便构建文件使用。
- 友好的工具API以供IDE集成。
为什么要使用gradle?
The Android build system compiles app resources and source code, and packages them into APKs that you can test, deploy, sign, and distribute. Android Studio uses Gradle, an advanced build toolkit, to automate and manage the build process, while allowing you to define flexible custom build configurations. Each build configuration can define its own set of code and resources, while reusing the parts common to all versions of your app. The Android Plugin for Gradle works with the build toolkit to provide processes and configurable settings that are specific to building and testing Android applications.
Android构建系统编译应用程序的资源和源代码,然后将它们打包到您可以测试,部署,签名和分发的APK。Android Studio使用Gradle,Gradle是先进的构建工具,在自动化管理生成过程中,允许你灵活的定制build配置。每个构建配置可以定义自己的代码和资源,在应用程序所有版本重用共有的部分。Android Gradle插件通过构建工具包提供处理和配置设置,来构建和测试Android应用程序。
android studio中gradle的结构是什么样子的?
在android studio中build.gradle文件存在于project top层和 app层
MyApp
|
+---app/
| +--- libs
| +--- src
| |--- .gitignore
| |--- build.gradle
| \--- proguard-rules.pro
|
+---gradle/
| +--- wrapper
| |--- gradle-wrapper.jar
| \--- gradle-wrapper.properties
|
|--- .gitignore
|--- build.gradle
|--- gradle.properties
|--- gradlew
|--- gradlew.bat
|--- local.properties
\--- settings.gradle
各文件的功能:
项目文件 | 功能 | ………. |
---|---|---|
MyApp/app/.gitignore | git过滤规则文件 | |
MyApp/app/build.gradle | app构建文件 | |
MyApp/app/proguard-rules.pro | 混淆规则文件 | |
MyApp/gradle/wrapper/gradle-wrapper.jar | 本地gradle,统一使用 | |
MyApp/gradle/wrapper/gradle-wrapper.properties | gradle jar配置 | |
MyApp/.gitignore | git过滤规则文件 | |
MyApp/build.gradle | 全局构建文件 | |
MyApp/gradle.properties | Project-wide Gradle settings | |
MyApp/gradlew | linux下的shell脚本 | |
MyApp/gradlew.bat | windows下的批处理文件 | |
MyApp/local.properties | Android环境变量配置 | |
MyApp/settings.gradle | 项目app、lib配置 |