/**
* app文件夹下,这个Module的gradle配置文件
*/
//声明是Android程序(如果这个模块是一个Library的话,应该引入的插件叫做'com.android.library')
apply plugin: 'com.android.application'
android {
/**
* 编译SDK的版本(SDK的版本号,也就是API level,eg:API-19 API20等等)
*
* SDK--SoftWare Development Kit 软件开发工具包
*
* API--Application Programming Interface 应用编程接口
*
* 为了使用api函数,我们就需要跟api对应的.H和.LIB文件,而SDK正是提供了一整套开发应用程序所需要的相关文件、
* 范例和工具的工具包,即SDK包含了使用API所需要的必须材料
*/
compileSdkVersion 24
//buildTools的版本(构建工具的版本,其中包括了工具aapt、dx等。目录位置位于your_sdk_path/build-tools-xx.xx.xx)
//可以用高版本的构建工具去构建低版本的sdk工程(打包用的,建议用比较新的版本)
buildToolsVersion "24.0.2"
defaultConfig {
//应用的包名(如果你这个模块是Library,那么要把这行删掉)
//如果你在Library模块中也配置了applicationId的话到时候会在手机屏幕上看到两个应用图标
applicationId "com.magical.m.magicallxjr"
//需要向下兼容的最低版本
minSdkVersion 15
//需要使用的SDK版本(如果需要但不必须使用新版本SDK的新功能,可以设置新版本的SDK版本如下,但是考虑到老设备的兼容,参考上一行)
targetSdkVersion 24
//程序代码的相对版本,即版本更新过多少次(不对外显示)
versionCode 1
//应用程序的版本信息,需要显示给用户
versionName "1.0"
//使用AndroidJUnitRunner进行单元测试
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
/**
* 可以打哪些类型的包
*/
buildTypes {
/**
* 正式发布的apk需要怎么打包(对应的还有debug)
* 可以指定要用到的混淆文件在哪个目录下,签名文件(keystore)在哪个目录下,签名文件的密码之类的,如果你没配置的话就使用默认值
*/
release {
//是否混淆(minify 缩小)
minifyEnabled false
/**
* 混淆文件的位置
* proguard-android.txt 默认的混淆文件(SDK目录/tools/proguard/)
* proguard-rules.pro 让我们自行添加混淆规则文件(相应module的目录下)
*/
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
buildTypes {
debug {
// 显示Log
buildConfigField "boolean", "LOG_DEBUG", "true"
}
release {
// 不显示Log
buildConfigField "boolean", "LOG_DEBUG", "false"
}
}
/**
* 使用DataBinding框架的环境搭建
*/
dataBinding {
enabled = true
}
}
/**
* 我们依赖的jar包、第三方库、library工程
*/
dependencies {
//表明我们工程中要用到的jar包都可以放在app下的libs目录中,有了这一行配置,我们就可以放心的把jar包放在libs目录下,而不需要再做额外的配置了
compile fileTree(dir: 'libs', includes: ['*.jar'])
/**
* 这一行就是表明到maven库中找v7支持包(兼容包)
* com.android.support是这个支持包在maven库中的存放路径
* appcompat-v7是这个包的名称
* 4.2.1是这个包的版本
*
* 有了这个配置,Gradle工具就会到我们在全局gradle文件中指定的maven库中下载相应的支持包了
*
* 兼容包实际上是为了让android 2.2 /adnroid 2.3 /android 3.0 支持adnroid 4.0中才有的东西(eg:ActionBar)
* 如果不用兼容包,开发包含ActionBar的程序就不可以在2.2上运行了
*
* V7依赖V4
*/
//appcompat-v7这个工程可以让开发者统一开发,在任何系统版本下保证兼容性。涉及的内容有Theme,value,布局,新的控件,
// 新的动画实现方式,包含了support-v4的全部内容,开发Android工程时,要兼容低版本都要导入v7工程。android studio在创建工程的时候默认导入了v7工程,
// 并且将style使用了兼容style,给开发者提供了极大的方便。并且最新的v7包增加了很多material design的兼容类和素材,请及时更新
compile 'com.android.support:appcompat-v7:24.2.1'
//android-support-v4 是谷歌推出的兼容包,最低兼容Android1.6的系统
compile 'com.android.support:support-v4:24.2.1'
/**
* 测试是软件开发中非常重要的一部分,Android中是使用 junit 测试框架
* Android测试主要分两类本地测试和Instrumented测试,本地测试其实就是普通的Java程序测试,
* 它运行在本地的JVM。Instrumented测试则需要一台Android设备来运行测试
*/
//声明instrument测试依赖(需要一台android设备来运行测试)
//espresso 自动化测试框架 include:包含 exclude:不包含
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
//声明本地测试的依赖(普通的java程序测试)
testCompile 'junit:junit:4.12'
}
理解modle下的gradle
最新推荐文章于 2021-09-22 15:30:15 发布