美文网首页
Gradle For Android(二):基本自定义构建

Gradle For Android(二):基本自定义构建

作者: chym | 来源:发表于2017-04-14 16:25 被阅读0次

理解Gradle文件

根目录的setting.gradle文件在初始化时被执行,定义了要构建的模块,同时定义了Settings对象:

include ':app'

根目录所对应的rootProjectbuild.gradle实际构建配置在buildscriptallprojects声明用于所有模块的属性

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.0'
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

模块层的构建文件可以覆盖顶层build.gradle的任何属性,首先应用android application插件提供构建Android应用所需。android代码块包含Android特有配置,必须的属性包括compileSdkVersionbuildToolsVersiondefaultConfig配置应用核心属性,可全面覆盖AndroidManifest.xmlapplicationId定义了应用唯一识别符,而资源代码和R类继续使用AndroidManifest.xml中的包名。

apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    buildToolsVersion "24.0.2"
    defaultConfig {
        applicationId "chenyummy.douban250"
        minSdkVersion 21
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            buildConfigField "String", "API_URL","\"http://api.abc.com\""
            resValue "String" "app_name" "Name"
        }
    }
}
dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:25.1.0'
}

任务入门

Android插件使用了Java基础插件(定义了check和build任务),Java基础插件又使用了基础插件(定义了assemble和clean任务,仅定义约定,不实现)

  • assemble :打包项目的输出
  • clean :清理项目的输出
  • check : 运行所有测试,包括单元和集成测试
  • build:运行assemble和check

对于Android插件

  • assemble :为每个构建版本构建一个apk,依赖于assembleDebug合assembleRelease
  • clean :清理项目的输出
  • check : 运行Lint检查
  • build:运行assemble和check

自定义构建

BuildConfig和资源

可以通过BuildConfig.API_URL引用常量还可以配置资源值(不加转义双引号)。

项目范围的设置
allprojects {
    apply plugin: 'com.android.application'
    android {
        compileSdkVersion 25
        buildToolsVersion "24.0.2"
    }
}

实现这种方式的更好方法是在顶层构建文件中定义值,然后将它们应用到模块,任何Project对象上都能定义额外属性

ext{
    compileSdkVersion 25
    buildToolsVersion "24.0.2"
}
android{
    compileSdkVersion rootProject.ext.compileSdkVersion
    buildToolsVersion rootProject.ext.buildToolsVersion
}

项目属性可以通过如下方式设定

  • ext代码块
  • gradle.property文件
  • -P命令行参数

相关文章

网友评论

      本文标题:Gradle For Android(二):基本自定义构建

      本文链接:https://www.haomeiwen.com/subject/wagyattx.html