一.概况
做Unity游戏,需要打包到Android和IOS平台,其中Android平台少不了要和AndroidStudio打交道,但是对于Gradle的使用,迷茫了好久。所以为了以后更好的解决问题,必须把AndroidStudio和gradle以及gradle插件完全搞懂。
1.1Android Studio
Android Studio 是谷歌推出一个Android集成开发工具,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试。
基于Gradle的构建支持
Android 专属的重构和快速修复
提示工具以捕获性能、可用性、版本兼容性等问题
支持ProGuard 和应用签名
基于模板的向导来生成常用的 Android 应用设计和组件
功能强大的布局编辑器,可以让你拖拉 UI 控件并进行效果预览
上面是百度给的百度百科,说白了就是Android开发的新工具Google的亲儿子。具体参看AndroidStudio百度百科
1.2Gradle
Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。
1.3Gradle插件
其实应该是AndroidStudio Gradle Plugin,也就是AndroidStudio用于开发Android项目的gradle插件。
1.4两者的关系
- 1.Gradle插件每个版本号对应有一个或一些 Gradle发行版本(限定一个最低版本),也就是我们常见的类似gradle-4.1-all.zip这种东西;如果这两个版本对应不上了,那你的工程构建的时候就会报错。对应关系参看Gradle插件和Gradle版本对应关系。
- 2.Android Gradle Plugin又会跟 Android SDK BuildTool有关联(版本有对应的关系),因为它还承接着AndroidStudio里的编译相关的功能,这也是我们要在项目的 local.properties 文件里写明Android SDK路径、在build.gradle 里注明 buildToolsVersion 的原因。Android Gradle Plugin 本质上就是 一个AS的插件,它一边调用 Gradle本身的代码和批处理工具来构建项目,一边调用Android SDK的编译、打包功能,从而让我们能够顺畅地在AS上进行开发。
参考:https://developer.android.com/studio/releases/gradle-plugin?hl=zh-cn
二.build.gradle文件介绍
最外层目录下的build.gradle文件
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.2'
}
}
allprojects {
repositories {
jcenter()
}
}
在repositories闭包中:
jcenter():它是一个代码托管仓库,很多的Android开源项目都会选择将代码托管到jcenter上,声明了这行配置后,我们就可以在项目中轻松使用任何的jcenter上的开源项目了
在dependencies 闭包中:
classpath 'com.android.tools.build:gradle:2.2.2'声明了一个Gradle插件。gradle:2.2.2为Gradle插件的版本号。
三.gradle-wrapper-propertiies文件介绍
最外层目录下的gradle-wrapper-propertiies文件
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
- zipStoreBase和zipStorePath组合在一起,是下载的gradle-4.6-all.zip所存放的位置。
- zipStorePath是zipStoreBase指定的目录下的子目录。
- distributionBase和distributionPath组合在一起,是解压gradle-4.6-all.zip之后的文件的存放位置。
- distributionPath是distributionBase指定的目录下的子目录。
- distributionUrl:Gradle下载地址
四.Gradle配置
4.1. gradle和gradle插件不同, 插件依赖于gradle
4.2 勾选use default fradle wrapper
这样配置的gradle。build项目时,如果在目录“C:/Users/用户名/.gradle/wrapper/dists/..”存在的话,as就会利用该目录下的缓存,直接编译,如果不存在AS就会在gradle-wrapper.properties文件里找指定站点distributionUrl=https://services.gradle.org/distributions/gradle-4.x-all.zip去下载了,然后下载到“C:/users/用户名/.gradle/wrapper/dists/gradle-4.x-all”目录下.
注:as下载gradle比较慢, 可自己去下载, 然后放到指定位置, 再由as启动的时候自动去解压即可.
五.Android SDK BuildTool(buildToolsVersion)
在升级完gradle的版本之后,可能会由于buildToolsVersion过低造成提示错误的情况出现,这时候你就按照提示下载需要的Android SDK BuildTool版本就可以了。这里的gradle版本和Android SDK BuildTool的版本对应关系和gradle插件与gradle对应关系相似,都是前者确定之后,后者只需要更新到符合要求的最低版本即可,当然也可以是最新的只要匹配就行。