gradle读取配置文件

2018-10-30 10:58:41

最近在导入一些开源项目的时候,发现配置文件的写法和自己平时写的不一样,平时是这样写的。


apply plugin: 'com.android.application'


android {

    compileSdkVersion 23

    buildToolsVersion "23.0.2"


    defaultConfig {

        applicationId "com.example.hecun.myapplication"

        minSdkVersion 15

        targetSdkVersion 23

        versionCode 1

        versionName "1.0"

    }

   ........

}


dependencies {

    compile fileTree(dir: 'libs', include: ['*.jar'])

    testCompile 'junit:junit:4.12'

    compile 'com.android.support:appcompat-v7:23.2.1'

    compile 'com.android.support:design:23.2.1'

    compile 'com.nineoldandroids:library:2.4.0'

}


其实还有另外一种写法,有些项目中会这样写。


android {


    compileSdkVersion rootProject.ext.android.compileSdkVersion

    buildToolsVersion rootProject.ext.android.buildToolsVersion


    defaultConfig {

        applicationId rootProject.ext.android.applicationId

        minSdkVersion rootProject.ext.android.minSdkVersion

        targetSdkVersion rootProject.ext.android.targetSdkVersion

        versionCode rootProject.ext.android.versionCode

        versionName rootProject.ext.android.versionName

    }


........

}

dependencies {

    compile fileTree(dir: 'libs', include: ['*.jar'])

    compile project(":libraries:headsupcompat")

    compile project(":libraries:smooth-app-bar-layout")

    compile rootProject.ext.dependencies["design"]

    compile rootProject.ext.dependencies["appcompat-v7"]

    compile rootProject.ext.dependencies["recyclerview-v7"]

    compile rootProject.ext.dependencies["picasso"]

    compile rootProject.ext.dependencies["numberprogressbar"]

    compile rootProject.ext.dependencies["photoview"]

    compile rootProject.ext.dependencies["umeng-analytics"]

    compile rootProject.ext.dependencies["retrofit"]

    compile rootProject.ext.dependencies["rxandroid"]

    compile rootProject.ext.dependencies["okhttp-urlconnection"]

    compile rootProject.ext.dependencies["okhttp"]

    compile rootProject.ext.dependencies["butterknife"]

    compile rootProject.ext.dependencies["otto"]

    compile rootProject.ext.dependencies["glide"]

}



可以看到和我们写的不一样,应该是引用了某个地方的东西,我们去看看 



我们打开这个文件



ext {


    android = [compileSdkVersion: 22,

               buildToolsVersion: "22.0.1",

               applicationId    : "me.drakeet.meizhi",

               minSdkVersion    : 14,

               targetSdkVersion : 22,

               versionCode      : 359,

               versionName      : "2.5.9"]


    dependencies = ["appcompat-v7"        : "com.android.support:appcompat-v7:22.2.1",

                    "design"              : "com.android.support:design:22.2.1",

                    "recyclerview-v7"     : "com.android.support:recyclerview-v7:22.2.1",

                    "nineoldandroids"     : "com.nineoldandroids:library:2.4.0",

                    "picasso"             : "com.squareup.picasso:picasso:2.5.2",

                    "photoview"           : "com.github.chrisbanes.photoview:library:1.2.3",

                    "numberprogressbar"   : "com.daimajia.numberprogressbar:library:1.2@aar",

                    "umeng-analytics"     : "com.umeng.analytics:analytics:latest.integration",

                    "retrofit"            : "com.squareup.retrofit:retrofit:1.9.0",

                    "rxandroid"           : "io.reactivex:rxandroid:1.0.0",

                    "okhttp-urlconnection": "com.squareup.okhttp:okhttp-urlconnection:2.0.0",

                    "okhttp"              : "com.squareup.okhttp:okhttp:2.0.0",

                    "butterknife"         : "com.jakewharton:butterknife:7.0.1",

                    "otto"                : "com.squareup:otto:1.3.8",

                    "glide"               : "com.github.bumptech.glide:glide:3.6.1"]

}



注意,这时候需要在跟目录build.gradle中添加下面一句话


apply from: "config.gradle"


  • 2018-11-06 06:42:59

    XUtils3框架数据库的基本使用方法

    今天给大家带来数据库模块的讲解,现在主流的ORM框架很多,比如OrmLite,GreenDao,Active Android,Realm等等,这些框架每个都有自己的优点和缺点,大家完全可以根据自己项目的实际需求进行选择,下面开始进入今天的数据库模块的介绍。

  • 2018-11-17 21:05:48

    Android ANR发生的原因总结和解决办法

    ANR的全称是application not responding,是指应用程序未响应,Android系统对于一些事件需要在一定的时间范围内完成,如果超过预定时间能未能得到有效响应或者响应时间过长,都会造成ANR。一般地,这时往往会弹出一个提示框,告知用户当前xxx未响应,用户可选择继续等待或者Force Close。

  • 2018-11-17 21:08:09

    Android 单个应用的内存限制

    获取Android手机应用内存大小 手机不同其性能也不同,手机本身内存可能有大有小,所以针对每个应用的内存大小也不相同。

  • 2018-11-17 21:11:14

    Android中App可分配内存的大小

     结果:(1)未设定属性android:largeheap = "true"时,可以申请到的最大内存空间为221M。      (2)设定属性android:largeheap = "true"时, 可以申请的最大内存空间为478M,是原来的两倍多一些。

  • 2018-11-17 22:44:53

    LeakCanary,30分钟从入门到精通

    在性能优化中,内存是一个不得不聊的话题;然而内存泄漏,显示已经成为内存优化的一个重量级的方向。当前流行的内存泄漏分析工具中,不得不提的就是LeakCanary框架;这是一个集成方便, 使用便捷,配置超级简单的框架,实现的功能却是极为强大的。

  • 2018-11-17 22:53:01

    gc for alloc freed

    在数组中选择图片然后显示,然后。。。logcat不断显示GC回收。最后程序黑屏。