/**
- 应用com.android.application插件构建此模块
**/
apply plugin: 'com.android.application'
/**
*开始配置安卓特定的编译选项
*/
android {
/**
- compileSdkVersion 指定gradle构建时采用的API版本,应用可以在当前版本的系统或者比当前版本更低的系统中运行
- buildToolsVersion 指定编译工具的版本,可以通过SDK Manager下载相应的版本
*/
compileSdkVersion 25
buildToolsVersion "25.0.0"
/**
- defaultConfig 封装默认设置和编译变量,能根据编译系统动态得重写AndroidManifest.xml中的属性
*/
defaultConfig {
/**
* applicationId 应用的名字
* 但是代码中的包名仍然参考main/AndroidManifest.xml
*/
applicationId 'com.example.myapp'
// 定义运行的最小系统版本
minSdkVersion 15
// 执行运行的api版本,通常和compileSdkVersion一致
targetSdkVersion 25
// 定义应用的版本
versionCode 1
// 定义对用户的版本
versionName "1.0"
}
/**
- buildTypes 配置了许多的编译类型。默认情况下,定义了debug 和release两种。
- debug编译类型在编译系统中默认支持,不用配置。编译时采用debugging tools而签名采用debug key
- release 编译类型应用了混淆设置,但是在默认情况下没有签名。
*/
buildTypes {
/**
* 默认情况下,Android Studio 对release编译类型进行了配置,
* minifyEnabled减少应用的体积,并且指定了混淆设置文件
*/
release {
minifyEnabled true // Enables code shrinking for the release build type.
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
/**
- productFlavors 字面翻译是产品口味,在多渠道打包用的比较多,或者是针对同一款应用不同的使用限制。
- 在productFlavors中可以重写defaultConfig中的配置。在默认情况下编译系统是没有创建productFlavors的。
- 这里示范创建了付费和免费两种产品特性,每种特性定义了不同的应用id,所以同一款手机可以同时安装者款应用
*/
productFlavors {
free {
applicationId 'com.example.myapp.free'
}
paid {
applicationId 'com.example.myapp.paid'
}
}
/**
- 拆分专用版本的apk,以减小应用的提交
- 比如:jni时分别拆分成arm版和x86版
或者根据屏幕密度拆分
*/
splits {
// Screen density split settings
density {
// Enable or disable the density split mechanism
enable false
// Exclude these densities from splits
exclude "ldpi", "tvdpi", "xxxhdpi", "400dpi", "560dpi"
}
}
}
/**
- 本模块的依赖配置
*/
dependencies {
compile project(":lib")
compile 'com.android.support:appcompat-v7:25.1.0'
compile fileTree(dir: 'libs', include: ['*.jar'])
}
网友评论