Android应用模块基本配置元素
/**
* 构建配置中的第一行
* 将Gradle的Android插件应用到这个构建中
* 并使Android块可用来指定Android特定的构建选项。
*/
apply plugin: 'com.android.application'
/**
* 这是你配置所有Android特有块的地方
* 构建选项
*/
android {
/**
* compileSdkVersion指定Gradle应该使用的Android API级别
* 编译你的应用程序。这意味着你的应用程序可以使用包含的API特性
*/
compileSdkVersion 28
/**
* buildToolsVersion指定SDK构建工具的命令行版本的工具个编译器
* Gradle使用他们来构建你的应用程序
* 您需要使用SDK管理器来下载构建工具
* 此属性是可选的,因为插件默认使用推荐的构建工具版本
*/
buildToolsVersion "29.0.0"
/**
* defaultConfig块封装了所有构建变体的默认设置和条目
* 并且可以覆盖main/AndroidManifest中的一些属性
* 从构建系统动态地生成xml
* 您可以配置产品口味来覆盖应用程序不同版本的这些值。
*/
defaultConfig {
/**
* applicationId惟一地标识要发布的包
* 但是,您的源代码仍然应该引用主/AndroidManifest.xml文件中的package属性定义的包名。
*/
applicationId 'com.example.myapp'
// 定义你的app所能运行的最低级别API
minSdkVersion 15
// 指定测试应用的API级别
targetSdkVersion 28
// 指定你的应用APP的版本号
versionCode 1
// 指定你的应用的版本名字
versionName "1.0"
}
/**
* 你可以在buildTypes块中配置多个构建类型,默认情况下,
* 系统定义了两个构建类型,debug和release
* 在默认的情况下,debug的构建类型中是没有显示配置的
* 但是他包含调试工具,使用默认的debug-key进行签名
* build type应用了Proguard设置,默认情况下没有签名
*/
buildTypes {
/**
* 默认情况下,Android Studio使用minifyEnabled配置发布构建类型来启用代码压缩,
* 并指定Proguard设置文件。
*/
release {
minifyEnabled true // 为版本构建类型启用代码资源压缩,其实就是是否使用混淆
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
/**
* 在productFlavors块中可以配置多个产品风味
* 这允许你创建不同版本的应用程序
* 用他们来覆盖defalutConfig块中的属性设置
* 产品风味是可选的,系统默认不创建他们
*
* 这个示例创建了free和paid两个productFlavors
* 每一个productFlavors都有他们自己特有的一个application ID
* 所以他们可以同时存在于Google Play Store或者一个Android设备中
*
* 如果你声明一个productFlavors,那么你就必须要声明口味维度(flavorDimension)
* 并为每一个productFlavors分配一个flavorDimensions
*/
flavorDimensions "tier"
productFlavors {
free {
dimension "tier"
applicationId 'com.example.myapp.free'
}
paid {
dimension "tier"
applicationId 'com.example.myapp.paid'
}
}
/**
* 在splits块中,你可以配置不同的apk构建
* 每个只包含支持的屏幕密度或代码和资源ABI
* 您还需要配置您的构建,以保证每一个APK都有一个自己不同的versionCode
*/
splits {
// 基于屏幕密度来构建多个apk
density {
// 启用或禁用构建多个apk
enable false
// 当构建多个apk的时候排除这些配置
exclude "ldpi", "tvdpi", "xxxhdpi", "400dpi", "560dpi"
}
}
}
/**
* 指定模块所需的依赖项
*/
dependencies {
implementation project(":lib")
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation fileTree(dir: 'libs', include: ['*.jar'])
}
网友评论