理解modle下的gradle

来源:互联网 发布:power mac g4改装 编辑:程序博客网 时间:2024/06/05 23:04
/** * 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'}

0 0