目前(使用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文件中应该具有的绝对最小值是什么?
答案 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,那么这里的任何内容都可以提醒你如何设置它,这对于发布版本来说是非常常见的事情,所有开发人员都应该考虑将它们的应用程序准备好公开发布。