近日学习使用AndroidStudio进行安卓方向的开发,对于其Gradle功能一直不太理解,经过资料查询,汇总在此以便记录。
1.Gradle的来历及意义
Gradle 是新一代的自动化构建工具,它是一个独立的项目,跟 AS、Android 无关。但Google 在推出 AS 的时候选中了 Gradle 作为构建工具,为了支持 Gradle 能在 AS 上使用,Google 做了个 AS 的插件叫 Android Gradle Plugin ,所以我们能在 AS 上使用 Gradle 完全是因为这个插件的原因。
在项目的根目录有个 build.gradle 文件,里面有这么一句代码:
classpath 'com.android.tools.build:gradle:2.1.2'
这个就是依赖 gradle 插件的代码,后面的版本号代表的是 android gradle plugin 的版本,而不是 Gradle 的版本,这个是 Google 定的,跟 Gradle 官方没关系。
2.Gradle对AS的作用
新建一个项目,然后点击 AS 上的运行,默认就会直接帮你安装 Gradle ,我们不需要额外的安装 Gradle 了,但是其实这个 Gradle 不是真正的 Gradle ,他叫 Gradle Wrapper ,意为 Gradle 的包装。目的是为每个项目都配置了一个指定版本的 Gradle ,可以理解为每个 Android 项目本地都有一个小型的 Gradle ,通过这个每个项目你可以支持用不同的 Gradle 版本来构建项目。
总而言之,Gradle方便在没有集成开发环境的条件下进行项目的编译打包。
3.常用Gradle命令
./gradlew -v 版本号
./gradlew clean 清除app目录下的build文件夹
./gradlew build 检查依赖并编译打包
./gradlew assembleDebug 编译并打Debug包
./gradlew assembleRelease 编译并打Release的包
4.AndroidStudio目录结构
- app/build/ app模块build编译输出的目录
- app/build.gradle app模块的gradle编译文件
- app/app.iml app模块的配置文件
- app/proguard-rules.pro app模块proguard文件
- build.gradle 项目的gradle编译文件
- settings.gradle 定义项目包含哪些模块
- gradlew 编译脚本,可以在命令行执行打包
- local.properties 配置SDK/NDK
- MyApplication.iml 项目的配置文件
- External Libraries 项目依赖的Lib, 编译时自动下载的
- app/manifests AndroidManifest.xml配置文件目录
- app/java 源码目录
- app/res 资源文件目录
- Gradle Scripts gradle编译相关的脚本