写点什么

熟悉 Android 打包编译的流程,超硬核

用户头像
Android架构
关注
发布于: 2021 年 11 月 06 日

jcenter()}


dependencies 块配置 Gradle 需要使用的依赖项来构建项目。下面的代码行添加了 Gradle 的 Android 插件版本 3.3.2 作为类路径依赖项。


dependencies {classpath 'com.android.tools.build:gradle:3.3.2'}}


allprojects 块是配置项目中所有模块(如第三方插件或库)使用的存储库和依赖项的地方。但是,你应该在每个模块级别的构建中配置特定于模块的依赖项。gradle 文件。对于新项目,Android Studio 默认包含 JCenter 和谷歌的 Maven 存储库,但它不配置任何依赖项(除非您选择了一个需要的模板)


allprojects {repositories {google()jcenter()}}


对于包含多个模块的 Android 项目,在项目级别定义某些属性,并在所有模块间共享这些属性可能会非常有用。 为此,您可以将 额外属性添加到顶级 build.gradle 文件的 ext 代码块中。


buildscript {...}


allprojects {...}


// 这个块封装了自定义属性,使它们对项目中的所有模块都可用。ext {//下面只是可以定义的属性类型的几个示例。compileSdkVersion = 28// You can also create properties to specify versions for dependencies.// Having consistent versions between modules can avoid conflicts with behavior.supportLibVersion = "28.0.0"...}...


要从相同项目中的模块访问这些属性,请在模块的 build.gradle 文件(您可以在以下部分了解有关此文件的详细信息)中使用以下语法。


android {// 使用以下语法访问在项目级别定义的属性:// rootProject.ext.property_namecompileSdkVersion rootProject.ext.compileSdkVersion...}...dependencies {implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"...}


  • module build.gradle 是模块级构建文件模块级 build.gradle 文件位于各 project/module/ 目录中,用于配置适用于其所在模块的构建设置。 你可以通过配置这些构建设置来提供自定义打包选项(例如附加构建类型和产品风格),以及替换 main/ 应用清单或顶级 build.gradle 文件中的设置。


此 Android 应用模块 build.gradle 文件示例概括您应了解的某些基本 DSL 元素和设置。


//构建配置中的第一行将 Gradle 的 Android 插件应用于此构建,并使 Android 块可用来指定特定于 Android 的构建选项。


apply plugin: 'com.android.application'


android 块是配置所有 android 特定构建选项的地方。android {


compileSdkVersion 指定了 Gradle 应该使用的 Android API 级别来编译你的应用程序。这意味着你的应用程序可以使用这个 API 级别或更低的 API 特性。


compileSdkVersion 28


buildToolsVersion 指定了用于构建应用程序的 SDK 构建工具、


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


命令行实用程序和编译器的版本。需要使用 SDK 管理器下载构建工具。此属性是可选的,因为插件默认使用构建工具的推荐版本。


buildToolsVersion "28.0.3"


defaultConfig 块封装了所有构建变体的默认设置和条目,并且可以从构建系统动态地覆盖 main/AndroidManifest.xml 中的一些属性。你可以配置产品口味来覆盖应用程序不同版本的这些值。


defaultConfig {


applicationId 惟一地标识要发布的包。但是,我们的源代码仍然应该引用主/AndroidManifest.xml 文件中的 package 属性定义的包名。applicationId 'com.example.myapp'


定义运行应用程序所需的最低 API 级别。minSdkVersion 15


指定用于测试应用程序的 API 级别。targetSdkVersion 28


定义应用程序的版本号。versionCode 1


为您的应用程序定义一个用户友好的版本名称。versionName "1.0"}


您可以在 buildTypes 块中配置多个构建类型。根据 efault,构建系统定义了两种构建类型:debug 和 release。调试构建类型在默认的构建配置中没有显式显示,但是它包含调试工具,并使用 debug 键进行签名。release 构建类型应用 Proguard 设置,默认情况下不签名。


buildTypes {


默认情况下,Android Studio 使用 minifyEnabled 配置 release build 类型来启用代码收缩,并指定 Proguard 设置文件。


release {minifyEnabled true // Enables code shrinking for the release build type.proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'}}


可以在 productflavor 块中配置多个产品口味。这允许您创建应用程序的不同版本,这些版本可以用自己的设置覆盖 defaultConfig 块。产品风味是可选的,默认情况下构建系统不会创建它们。这个例子创建了一个免费且付费的产品风格。然后,每种产品都指定了自己的应用程序 ID,这样它们就可以同时存在于谷歌 Play Store 或 Android 设备上。如果您声明产品的风味,您还必须声明风味维度,并将每种风味分配给风味维度。


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


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


在 split 块中,您可以配置不同的 APK 构建,每个构建只包含支持屏幕密度或的代码和资源 versionCode 不同。


splits {根据屏幕密度设置构建多个 apk。density {


启用或禁用构建多个 apkexclude "ldpi", "tvdpi", "xxxhdpi", "400dpi", "560dpi"}}}


模块级构建配置文件中的 dependencies 块指定仅构建模块本身所需的依赖项。要了解更多信息,请添加构建依赖项。


dependencies {implementation project(":lib")

用户头像

Android架构

关注

还未添加个人签名 2021.10.31 加入

还未添加个人简介

评论

发布
暂无评论
熟悉Android打包编译的流程,超硬核