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'])
}
网友评论