当前位置: 首页 > news >正文

Android Gradle开发与应用Gradle详细使用

一、Gradle 基础知识

1. Gradle 构建脚本

Gradle 构建脚本通常使用 Groovy 或 Kotlin DSL 编写。Android 项目中有两个主要的 Gradle 构建脚本:

a、项目级构建脚本 (build.gradle 或 build.gradle.kts):位于项目的根目录中,用于配置项目范围内的构建设置和依赖。

b、模块级构建脚本 (build.gradle 或 build.gradle.kts):位于每个模块的目录中,用于配置模块的构建设置和依赖。

2. 基本语法

a、插件:插件扩展了 Gradle 的功能。常见的 Android 插件有 com.android.application 和 com.android.library

b、依赖管理:通过 dependencies 块来声明项目所依赖的库和模块。

c、任务:Gradle 的核心是任务(task),每个任务代表构建过程中的一个可执行单元。

二、Android 项目中的 Gradle 配置

1. 项目级构建脚本
// 项目根目录的 build.gradle 文件
buildscript {ext {// 配置依赖版本号kotlin_version = "1.7.10"}repositories {google()mavenCentral()}dependencies {classpath "com.android.tools.build:gradle:7.2.0"classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"}
}allprojects {repositories {google()mavenCentral()}
}

2. 模块级构建脚本

// 模块目录的 build.gradle 文件
plugins {id 'com.android.application'id 'kotlin-android'
}android {compileSdk 32defaultConfig {applicationId "com.example.myapp"minSdk 21targetSdk 32versionCode 1versionName "1.0"testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'}}
}dependencies {implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"implementation 'androidx.core:core-ktx:1.7.0'implementation 'androidx.appcompat:appcompat:1.4.0'implementation 'com.google.android.material:material:1.5.0'testImplementation 'junit:junit:4.13.2'androidTestImplementation 'androidx.test.ext:junit:1.1.3'androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
}

三、Gradle 任务

  • 常用任务
    • assemble:编译项目,不包含测试。
    • assembleDebug:编译 Debug 版本。
    • assembleRelease:编译 Release 版本。
    • clean:删除构建目录。
    • build:编译和测试项目。
    • test:运行测试。

四、Gradle 与多模块项目

多模块项目有助于分离项目逻辑、提高可维护性和复用性。可以创建多个模块,例如 applibraryfeature等。

1. 创建新模块

在 Android Studio 中,通过 File > New > New Module 可以创建一个新的模块。

2. 模块依赖管理

在主模块的 build.gradle 文件中添加对新模块的依赖:

dependencies {implementation project(":library")implementation project(":feature")
}

五、自定义 Gradle 任务

你可以通过创建自定义任务来扩展 Gradle 的功能:

task hello {doLast {println 'Hello, Gradle!'}
}

在终端中运行 ./gradlew hello 即可执行该任务。

六、Gradle 高级功能

1. 配置构建变体

通过 productFlavors 可以定义不同的构建变体:

android {...productFlavors {free {applicationIdSuffix ".free"versionNameSuffix "-free"}paid {applicationIdSuffix ".paid"versionNameSuffix "-paid"}}
}

2. 自定义构建类型

android {...buildTypes {staging {initWith debugmatchingFallbacks = ['release']}}
}

通过上述配置,你可以更灵活地管理和优化你的 Android 项目构建流程。Gradle 提供了强大的功能和灵活性,可以根据具体需求进行定制。

http://www.lryc.cn/news/393876.html

相关文章:

  • 软件架构的23个基本原则:构建稳健、可扩展的系统
  • 江苏省生产经营单位安全管理考核(附答案)
  • Kafka第四篇——生产数据总体概括,源码解析分区策略,数据收集器,Sender发送线程,key值
  • 二叉树的链式结构
  • 【STM32】在标准库中使用DMA
  • 多线程详解
  • 软件工程需求之:业务需求与用户需求
  • Nettyの源码分析
  • MySQL远程登录
  • html的作业
  • 【TORCH】查看dataloader里的数据,通过dataloader.dataset或enumerate
  • KDTree 简单原理与实现
  • [c++] 可变参数模版
  • QWidget窗口抗锯齿圆角的一个实现方案(支持子控件)2
  • 数据结构之“队列”(全方位认识)
  • 密码学复习
  • 【文献解析】一种像素级的激光雷达相机配准方法
  • Http 实现请求body体和响应body体的双向压缩方案
  • C++(Qt)-GIS开发-简易瓦片地图下载器
  • 誉天教育7月开班计划:为梦想插上腾飞的翅膀!
  • STM32基础篇:GPIO
  • HTTPS 发送请求出现TLS握手失败
  • 数字化精益生产系统--IFS财务管理系统
  • 基于SpringBoot的校园台球厅人员与设备管理系统
  • 免杀笔记 ---> Session0--DLL注入
  • 如何做好IT类的技术面试?
  • A7 配置方式Master SPI如何更改位宽
  • linux kthread任务管理
  • 第一节 网络安全概述
  • 星光云VR全景系统源码