mudule build.gradle 模块级构建文件

2020-12-10  本文已影响0人  勤劳的蚂蚁

google 文档说明 对应地址: https://developer.android.com/studio/build

模块级 build.gradle 文件位于每个 project/module/ 目录下,用于为其所在的特定模块配置构建设置。您可以通过配置这些构建设置提供自定义打包选项(如额外的构建类型和产品变种),以及替换 main/ 应用清单或顶层 build.gradle 文件中的设置。

/**
 * The first line in the build configuration applies the Android plugin for
 * Gradle to this build and makes the android block available to specify
 * Android-specific build options.
翻译后:
构建配置的第一行将Android插件应用于 升级到此版本,并使android块可用于指定 特定于Android的构建选项
自己翻译:
构建配置的第一行通过Gradle 构建使用Android插件,可使android块用于指定 特定的Android构建选项。
 */

apply plugin: 'com.android.application'

/**
 * The android block is where you configure all your Android-specific
 * build options.
翻译后:
android块是您配置所有特定于Android的地方 构建选项。
 */

android {

  /**
   * compileSdkVersion specifies the Android API level Gradle should use to
   * compile your app. This means your app can use the API features included in
   * this API level and lower.
翻译后:
编译Sdk版本指定Gradle编译您的应用程序使用的Android API级别 。这意味着您的应用可以使用此API级别及更低的API功能 。
   */

  compileSdkVersion 28

  /**
   * buildToolsVersion specifies the version of the SDK build tools, command-line
   * utilities, and compiler that Gradle should use to build your app. You need to
   * download the build tools using the SDK Manager.
   *
   * This property is optional because the plugin uses a recommended version of
   * the build tools by default.
翻译后:
buildToolsVersion指定SDK构建工具的版本,命令行和 Gradle用于构建程序的编译器。你需要下载构建工具来使用SDK Manager。

此属性是可选的,因为插件使用推荐的版本 默认情况下为构建工具
   */

  buildToolsVersion "29.0.2"

  /**
   * The defaultConfig block encapsulates default settings and entries for all
   * build variants, and can override some attributes in main/AndroidManifest.xml
   * dynamically from the build system. You can configure product flavors to override
   * these values for different versions of your app.
翻译后:
defaultConfig块对于构建变体所有封装了所有的默认设置和条目 ,并且可以动态地构建系统并覆盖main / AndroidManifest.xml中的某些属性 。您可以配置产品口味以覆盖
这些值适用于您应用的不同版本
   */

  defaultConfig {

    /**
     * applicationId uniquely identifies the package for publishing.
     * However, your source code should still reference the package name
     * defined by the package attribute in the main/AndroidManifest.xml file.
翻译后:
applicationId唯一标识要发布的包。 但是,您的源代码仍应引用程序包名称main / AndroidManifest.xml文件中的package属性定义。
     */

    applicationId 'com.example.myapp'

    // Defines the minimum API level required to run the app.
翻译:
  定义app最低支持的版本
    minSdkVersion 15

    // Specifies the API level used to test the app.
翻译:
指定用于测试应用程序的API级别
    targetSdkVersion 28

    // Defines the version number of your app.
翻译为:
定义应用程序的版本号
    versionCode 1

    // Defines a user-friendly version name for your app.
//为您的应用程序定义一个用户友好的版本名称
    versionName "1.0"
  }

  /**
   * The buildTypes block is where you can configure multiple build types.
   * By default, the build system defines two build types: debug and release. The
   * debug build type is not explicitly shown in the default build configuration,
   * but it includes debugging tools and is signed with the debug key. The release
   * build type applies Proguard settings and is not signed by default.
翻译后:
您可以在buildTypes块中配置多种构建类型。
默认情况下,构建系统定义了两种构建类型:调试和发布。
默认生成配置中,debug调试构建类型虽然没有在显式展示,
但它包含调试工具,并使用调试键签名。release发布
构建类型应用混淆设置,默认没有签名。
   */

  buildTypes {

    /**
     * By default, Android Studio configures the release build type to enable code
     * shrinking, using minifyEnabled, and specifies the default Proguard rules file.
翻译后:
默认情况下,Android Studio将发布版本类型配置为启用代码 使用minifyEnabled缩小,并指定默认的Proguard 混淆规则文件。
     */

    release {
        minifyEnabled true // Enables code shrinking for the release build type.
翻译后:
为发布版本类型启用代码收缩。
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
  }

  /**
   * The productFlavors block is where you can configure multiple product flavors.
   * This allows you to create different versions of your app that can
   * override the defaultConfig block with their own settings. Product flavors
   * are optional, and the build system does not create them by default.
   *
   * This example creates a free and paid product flavor. Each product flavor
   * then specifies its own application ID, so that they can exist on the Google
   * Play Store, or an Android device, simultaneously.
   *
   * If you declare product flavors, you must also declare flavor dimensions
   * and assign each flavor to a flavor dimension.
翻译后:
在productflavor(各种产品)块中,您可以配置多种产品口味。
其允许你创建不同版本的应用程序并可以
用其的设置覆盖defaultConfig (默认配置)块。产品口味
是可选的,构建系统默认不创建它们。

本示例创建了免费和付费的产品样式。每种产品的味道 可以指定其自己的应用程序ID,以便它们可以在Google Play商店或Android设备同时存在。

如果声明产品口味,则还必须声明口味尺寸并将每种风味分配给风味维度。
   */

  flavorDimensions "tier"
  productFlavors {
    free {
      dimension "tier"
      applicationId 'com.example.myapp.free'
    }

    paid {
      dimension "tier"
      applicationId 'com.example.myapp.paid'
    }
  }

  /**
   * The splits block is where you can configure different APK builds that
   * each contain only code and resources for a supported screen density or
   * ABI. You'll also need to configure your build so that each APK has a
   * different versionCode.
翻译后:
拆分块是您可以配置不同APK版本的地方 ,每个仅包含用于支持的屏幕密度的代码和资源,或者 不同类型的ABI。您还需要配置自己的版本,以便每个APK都有一个 不同的versionCode。
   */

  splits {
    // Settings to build multiple APKs based on screen density.
翻译后:
用于根据屏幕密度构建多个APK的设置
    density {

      // Enable or disable building multiple APKs.
翻译后:
启用或禁用构建多个APK
      enable false

      // Exclude these densities when building multiple APKs.
  在构建多个APK时排除这些密度
      exclude "ldpi", "tvdpi", "xxxhdpi", "400dpi", "560dpi"
    }
  }
}

/**
 * The dependencies block in the module-level build configuration file
 * specifies dependencies required to build only the module itself.
 * To learn more, go to Add build dependencies.
翻译后:
自己 :模块本身需要的依赖资源。
模块级构建配置文件中的依赖项块 指定仅构建模块本身所需的依赖项。 要了解更多信息,请转到添加构建依赖项。
 */

dependencies {
    implementation project(":lib")
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation fileTree(dir: 'libs', include: ['*.jar'])
}
上一篇下一篇

猜你喜欢

热点阅读