Android库模块的最小build.gradle

时间:2014-09-05 20:13:54

标签: android gradle android-studio

目前(使用Android SDK工具23.0.2的Android Studio 0.8.6),这是由向导生成的新Android库的build.gradle:

apply plugin: 'com.android.library'

android {
    compileSdkVersion 19
    buildToolsVersion '19.1.0'

    defaultConfig {
        applicationId "com.mycompany.mylibrary"
        minSdkVersion 19
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile project (':model')
}

我们可以从那里安全地删除什么?也就是说,我们在Android库的Gradle文件中应该具有的绝对最小值是什么?

1 个答案:

答案 0 :(得分:2)

apply plugin: 'com.android.library'

必需。这告诉Gradle构建系统要加载哪些插件以进行构建。没有它,它就不知道如何建立你的项目。


compileSdkVersion 19
buildToolsVersion '19.1.0'

这些都是Android-Gradle插件所必需的,如果没有它们,您将收到错误。


defaultConfig {
    applicationId "com.mycompany.mylibrary"
    minSdkVersion 19
    targetSdkVersion 19
    versionCode 1
    versionName "1.0"
}

这不是严格要求的,如果没有它,你的构建就会成功(前提是你提供某处的值;你不能只是从你的构建文件中删除它而不做任何事情否则,不要破坏你的项目),但它在Android-Gradle项目中被认为是惯用的。这些值被插入到作为清单合并的一部分生成的AndroidManifest.xml中,并且内置到您的项目中;您在此处指定的值将替换您自己实际放入AndroidManifest.xml文件中的任何值。 applicationId对应package标记的manifest属性,并且很重要。

不幸的是,这是因为习惯使用Eclipse的Android开发人员的一些混淆,他们倾向于修改清单,因为这是过去的工作方式,并且当这些更改被构建文件覆盖时会感到困惑

为什么要将这些内容从清单移到构建文件中?因为在Gradle中你可以拥有构建类型和风格的概念,这些值可以根据构建的风格+类型组合而变化。在构建脚本中而不是通过大量部分AndroidManifest.xml文件表达这些值可能会更方便。


buildTypes {
    release {
        runProguard false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

此部分(至少是存根release构建类型)可能不是绝对必要的。构建系统自动创建调试和发布构建类型,因此您无需告诉它创建发布构建。根据文档(http://tools.android.com/tech-docs/new-build-system/user-guide),runProguard对于发布版本已经是错误的,如果您没有运行Proguard,则不需要指定其配置文件。如果你需要Proguard,那么这里的任何内容都可以提醒你如何设置它,这对于发布版本来说是非常常见的事情,所有开发人员都应该考虑将它们的应用程序准备好公开发布。