您的位置:首页 > 移动开发 > Android开发

AndroidStudio的Gradle文件各部分配置的含义

2016-11-09 11:18 295 查看
    随着Google不再支持Eclipse开发工具,AndroidStudio将成为Android开发的主流开发工具,将Gradle文件配置信息的含义总结如下:

     定义当前Module的类型(xxxx为application则Module是程序,为 library的话是库):


         apply plugin: 'com.android.xxxx'   

    android {      

                  compileSdkVersion xx:xx为编译的SDK版本       

                  buildToolsVersion "xx":xx为编译的Tools版本      

                  defaultConfig {:默认配置           

                                applicationId "xxxxxxxx":xxxxxxxx为应用程序的包名           

                                minSdkVersion xx:xx为支持的最低版本

                                targetSdkVersion xx:xx为支持的目标版本

                                versionCode x:x当前版本号

                                versionName "xx":xx为当前版本名

                                testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner":自动化测试

     }

     sourceSets {:目录指向配置(这个一般是eclipse工程转AS时会出现,因为eclipse的目录结构不是这样的,而AS目录结构符合

/src/main/java的gradle目录结构,所以编译会走默认的)

        main {

            manifest.srcFile 'AndroidManifest.xml':指定AndroidManifest文件

            java.srcDirs = ['src']:指定source目录

            resources.srcDirs = ['src']:指定source目录

            aidl.srcDirs = ['src']:指定source目录

            renderscript.srcDirs = ['src']:指定source目录

            res.srcDirs = ['res']:指定资源目录

            assets.srcDirs = ['assets']:指定assets目录

            jniLibs.srcDirs = ['libs']:指定lib库目录

        }

        debug.setRoot('build-types/debug'):指定debug模式的路径

        release.setRoot('build-types/release'):指定release模式的路径

    }

    buildTypes {:配置应用版本,一般是debug和release 两个版本,也可以创建其他版本根据需要,debug版本为开发默认就好

        release {

            minifyEnabled false:是否混淆

            shrinkResources true:移除无用的resource文件

            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' :加载默认混淆配置文件

            signingConfig signingConfigs.relealse:签名

        }

    }

    lintOptions {

        // 防止在发布的时候出现因MissingTranslation导致Build Failed!

        disable 'MissingTranslation'

    }

    //渠道Flavors,多渠道打包是配置

    productFlavors {

        // 百度手机助手

        baidu {

        }

        // 安智官网

        anzhi {

        }

        // 应用汇

        appchina {

        }

        // 搜狗手机助手

        sogou {

        }

        // 小米应用商店

        mi {

        }

        // 豌豆荚

        wandoujia {

        }

        // 木蚂蚁

        mumayi {

        }

        // 应用宝

        qq {

        }

        // 魅族应用商店

        meizu {

        }

        // 优忆市场

        eoemarket {

        }

        // 历趣

        liqucn {

        }

        // 乐商店

        lenovomm {

        }

        // 华为市场

        huawei {

        }

        // PP助手

        pp {

        }

        // 360手机

        q360 {

        }

        // oppo市场

        oppo {

        }

        自定义apk的名字

        applicationVariants.all { variant ->

            variant.outputs.each { output ->

                def outputFile = output.outputFile

                if (outputFile != null && outputFile.name.endsWith('.apk')) {

                    def fileName = outputFile.name.replace(".apk", "-${defaultConfig.versionName}.apk")

                    output.outputFile = new File(outputFile.parent, fileName)

                    }

                }

            }

        }

    }

    dependencies {:依赖库

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

        androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {

            exclude group: 'com.android.support', module: 'support-annotations'

        })

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

        testCompile 'junit:junit:4.12'

    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  gradle