Gradle连载6-AndroidGradle任务之defaultConfig配置

一、android工程配置

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.4'
    }
}
apply plugin: 'com.android.application'

android {
    compileSdkVersion 23 // 还可以写成compileSdkVersion 'android-23', 原来的写法其实就是一个方法
    // public void compileSdkVersion(String version) {
    //    checkWritability();
    //    this.target = version
    // }
    buildToolsversion "23.0.1"

    defaultConfig {
        applicationId "org.flysNow.app.test" // 配置的包名
        minSdkVersion 14 
        targetSdkVersion 23 
        versionCode 1 // 应用内部版本号,用于上级app升级
        versionName "1.0"
    }
    buildTypes { // 是一个NamedDomainObjectContainer类型,是一个域对象
        // 可以再其中新增任意多个需要构建的类型,比如debug
        release {
            minifyEnabled false // 是否启动混淆
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            // 下面是混淆文件的加载
        }
    }
}
// android gradle工程都是在android{}中的,唯一入口

dependencies {
    compile filetree(dir: 'libs', include: ['*.jar'])
    testComplie 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:28.0.0'
    compile 'com.android.support:design:23.0.0'
}
  • android gradle 工程具体实现是com.android.build,gradle.AppExtension,是Project的一个扩展,原型为extension = project.extension.create('android, getExtensionClass(), (PojectInternal)project, instantiator, androidBuilder, sdkHandler, buildTypeContainer, productFlavorContainer, signingConfigContainer, extraModelInfo, isLibrary())

二、defaultConfig配置

6.1

android {
    compileSdkVersion 23
    buildToolsversion "23.0.1"

    defaultConfig {
        applicationId "org,flysNow.app.example74" // 这是ProductFlavor的一个属性,用于指定生成App的包名
        // 在构建的时候,会从AndroidManifest.xml进行读取,也就是manifest标签的package属性值
        minSdkVersion 14
        targetSdkVersion 23
        verionCode 1 // 用于配置APP的内部版本号,是一个整数值,通常用于版本升级
        versionName "1.0"  // 用于配置APP的版本名称如V1.0.0,这个是外部使用,一起配合使用
    }

    /**
     * minSdkVersion是ProductFlavor的一个方法,其原型为
     *
     * public void minSdkVersion(int minSdkVersion) {
     *     setMinSdkVersion(minSdkVersion);
     * }
     *
     * 还可以表示为
     * public void MinSdkVersion(@Nullable String minSdkVersion) {
     *     setMinSdkVersion(getApiVersion(minSdkVersion));
     * }
     * // 这里的字符串是有特定的指定对应的如图6.1
     */
}

三、源码

相关文章

安装环境都很简单,就是下载工具需要在华为开发者联盟里注册...
上传的方式有两种,第一种是通过bintray官方出的插件bintray...
转载自: 完美解决Error:SSLpeershutdownincorrectly打开gr...
https://www.jianshu.com/p/9220227cdfb3buildscript{ext.ko...
Markdown版本笔记我的GitHub首页我的博客我的微信我的邮箱My...
 跟着教程做的,已经有了JDK,直接进行后面的步骤,下载安装...