2019-01-03 Android 项目gralde构建工具浅谈

android studio使用gradle对项目进行构建(编译,运行,打包,签名,发布),gradle的核心是groovy,groovy本质是java。

常用gradle命令:gradlew -v 查看项目各种插件版本信息

------------------------------------------------------------ Gradle 5.1.1 ------------------------------------------------------------ Build time: 2019-01-10 23:05:02 UTC Revision: 3c9abb645fb83932c44e8610642393ad62116807

 Kotlin DSL: 1.1.1

 Kotlin: 1.3.11

Groovy: 2.5.4

 Ant: Apache Ant(TM) version 1.9.13 compiled on July 10 2018

JVM: 10.0.2 ("Oracle Corporation" 10.0.2+13)

OS: Windows 10 10.0 amd64

gradlew -clean 清理项目(删除build文件夹下内容)

graldew -build 构建项目(检查依赖编译打包),打包debug和release

gralew -assembleDebug  打包调试版本

gralew -assembleRelease 打包发布版本


一个android项目有三类gradle脚本文件,project(配置项目对应gradle插件版本),module(包含application和module),settings(配置要编译的模块),如下图所示。


project 配置android项目对象使用的gradle版本,kotlin版本等(// Top-level build file where you can add configuration options common to all sub-projects/modules. 顶级构建文件里可以添加所有子项目和子模块公用的配置项),具体配置如下:

buildscript {

ext.kotlin_version ='1.2.10'

    ext.kotlin_version ='1.2.51'

    repositories {

google()

jcenter()

}

dependencies {

classpath'com.android.tools.build:gradle:3.2.1'

        classpath"org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

    }

}

allprojects {

repositories {

google()

jcenter()

maven { url'https://jitpack.io' }

}

}

task createDir{

mkdir("lily/learning")

}

task clean(type: Delete) {

delete rootProject.buildDir

}

module配置应用模块的android信息,包含编译版本,默认配置,构建类型,依赖和库等信息。默认配置可以配置applicationId(包名),支持的最小版本,目标版本,版本号等默认配置信息,编译版本可以配置默认信息,依赖可以配置依赖的库,主模块必须用applyplugin:'com.android.application' 插件开头,子模块必须用applyplugin:'com.android.library'插件开头,举例配置如下:

applyplugin:'com.android.application'

applyplugin:'kotlin-android'

applyplugin:'kotlin-android-extensions'

android {

compileSdkVersion27

    defaultConfig {

applicationId"com.xfhy.deepnight"

        minSdkVersion19

        targetSdkVersion27

        versionCode1

        versionName"1.0"

    }

buildTypes {

release {

minifyEnabledfalse

            proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'

        }

}

}

dependencies {

implementation fileTree(include: ['*.jar'],dir:'libs')

implementation'com.github.xfhy:BaseRecyclerViewAdapter:v1.2'

    implementation project(':deeplibrary')

}

settings(Project settings) 配置项目包含的所有模块include':主模块',':子模块',举例配置如下

include':app',':deeplibrary'。

除了gradle脚本文件还有对应的属性文件,1)gradle.properties可以配置守护进程,并行编译,是否启用新的孵化模式(默认最好关闭)是否使用过期的ndk等信息。2)local.properties 可以配置sdk,ndk的路徑(SDK Location)

3)gradle.properties配置

你可能感兴趣的:(2019-01-03 Android 项目gralde构建工具浅谈)