美文网首页
build.gradle的模块级

build.gradle的模块级

作者: 士心禾斗 | 来源:发表于2020-02-08 11:16 被阅读0次

    /**

    • 应用com.android.application插件构建此模块
      **/

    apply plugin: 'com.android.application'

    /**
    *开始配置安卓特定的编译选项
    */

    android {

    /**

    • compileSdkVersion 指定gradle构建时采用的API版本,应用可以在当前版本的系统或者比当前版本更低的系统中运行
    • buildToolsVersion 指定编译工具的版本,可以通过SDK Manager下载相应的版本
      */

    compileSdkVersion 25
    buildToolsVersion "25.0.0"

    /**

    • defaultConfig 封装默认设置和编译变量,能根据编译系统动态得重写AndroidManifest.xml中的属性
      */

    defaultConfig {

    /**
     * applicationId 应用的名字
     * 但是代码中的包名仍然参考main/AndroidManifest.xml
     */
    
    applicationId 'com.example.myapp'
    
    // 定义运行的最小系统版本
    minSdkVersion 15
    
    // 执行运行的api版本,通常和compileSdkVersion一致
    targetSdkVersion 25
    
    // 定义应用的版本
    versionCode 1
    
    // 定义对用户的版本
    versionName "1.0"
    

    }

    /**

    • buildTypes 配置了许多的编译类型。默认情况下,定义了debug 和release两种。
    • debug编译类型在编译系统中默认支持,不用配置。编译时采用debugging tools而签名采用debug key
    • release 编译类型应用了混淆设置,但是在默认情况下没有签名。
      */

    buildTypes {

    /**
     * 默认情况下,Android Studio 对release编译类型进行了配置,
     * minifyEnabled减少应用的体积,并且指定了混淆设置文件
     */
    
    release {
        minifyEnabled true // Enables code shrinking for the release build type.
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
    

    }

    /**

    • productFlavors 字面翻译是产品口味,在多渠道打包用的比较多,或者是针对同一款应用不同的使用限制。
    • 在productFlavors中可以重写defaultConfig中的配置。在默认情况下编译系统是没有创建productFlavors的。
    • 这里示范创建了付费和免费两种产品特性,每种特性定义了不同的应用id,所以同一款手机可以同时安装者款应用
      */

    productFlavors {
    free {
    applicationId 'com.example.myapp.free'
    }

    paid {
      applicationId 'com.example.myapp.paid'
    }
    

    }

    /**

    • 拆分专用版本的apk,以减小应用的提交
    • 比如:jni时分别拆分成arm版和x86版
    •   或者根据屏幕密度拆分
      

    */

    splits {
    // Screen density split settings
    density {

      // Enable or disable the density split mechanism
      enable false
    
      // Exclude these densities from splits
      exclude "ldpi", "tvdpi", "xxxhdpi", "400dpi", "560dpi"
    }
    

    }
    }

    /**

    • 本模块的依赖配置
      */

    dependencies {
    compile project(":lib")
    compile 'com.android.support:appcompat-v7:25.1.0'
    compile fileTree(dir: 'libs', include: ['*.jar'])
    }

    相关文章

      网友评论

          本文标题:build.gradle的模块级

          本文链接:https://www.haomeiwen.com/subject/qstixhtx.html