安卓开发必备——build.gradle文件初探(二)

简介: 上一篇(安卓开发必备——build.gradle文件初探(一) - 掘金 (juejin.cn))我们探讨了关于安卓项目中最外层目录下的build.gradle,这一篇我们将继续说build.gradle文件

前言

上一篇(安卓开发必备——build.gradle文件初探(一) - 掘金 (juejin.cn))我们探讨了关于安卓项目中最外层目录下的build.gradle,这一篇我们将继续说build.gradle文件,不过是更重要的app目录下的build.gradle,因为我们日常开发的确需要去知道它的组成以及如何去使用该文件去配置项目。

正篇

首先,我们先来看看它的样子:

plugins {
    id 'com.android.application'
    id 'org.jetbrains.kotlin.android'
    id 'org.jetbrains.kotlin.android.extensions'
}
android {
    namespace 'com.example.em3'
    compileSdk 33
    buildToolsVersion '32.1.0 rc1'
    defaultConfig {
        applicationId "com.example.em3"
        minSdk 21
        targetSdk 33
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = '1.8'
    }
    buildFeatures {
        viewBinding true
    }
}
dependencies {
    implementation 'androidx.core:core-ktx:1.7.0'
    implementation 'androidx.appcompat:appcompat:1.5.1'
    implementation 'com.google.android.material:material:1.5.0-alpha04'
    implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
    implementation 'androidx.navigation:navigation-fragment-ktx:2.4.1'
    implementation 'androidx.navigation:navigation-ui-ktx:2.4.1'
    testImplementation 'junit:junit:4.13.2'
    androidTestImplementation 'androidx.test.ext:junit:1.1.3'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
}

可以看到,这个文件的内容复杂度一下就上去了,下面我们逐步去分析。

应用插件

首先我们可以看到一个结构:

plugins {
    id '...'
    id '...'
    ...
}

这个是代表应用插件,而我们一开始展示的代码中可以看到它应用了三个插件,下面分别解释这三个插件:

com.android.application

我们可以看到首行应用了com.android.application这句,其实此次一般有两种值可选:com.android.application 代表这是一个应用程序模块,而com.android.library 代表这是一个库模块。这两种选择之间其实最大的差别就在于应用程序模块是可以直接运行的,而库模块只能作为代码库依附于其他应用程序模块来运行。而本项目是可以直接运行的APP应用程序项目,故采用应用程序模块。

org.jetbrains.kotlin.android & org.jetbrains.kotlin.android.extensions

这两个插件是用于Kotlin语言开发安卓项目的,org.jetbrains.kotlin.android是使项目使用Kotlin开发必备的,而org.jetbrains.kotlin.android.extensions则会方便我们使用Kotlin开发,是实现了一些非常好用的Kotlin扩展功能。

android闭包

android {
   ... 
}

在这个大闭包下我们可以去配置项目构建的各种属性:

compileSdk

是用来指定项目的编译版本,我的项目使用的33代表使用的是Android13系统的SDK编译

buildToolsVersion

这个是用于指定项目构建工具的版本,目前最新的是32.1.0 rc1, 如果有更新的版本时,一般Android Studio有提示告诉你去更新,不过Android Studio3.0后去除了此项配置,故作者为了便于展示说明所以手动加上的

defaultConfig

该闭包中可以对项目更多细节进行配置

buildTypes

用于指定生成安装文件的相关配置,通常是两个子闭包release与debug。

compileOptions

在这里你可以进行 Java 的版本配置,以便使用对应版本的一些新特性

kotlinOptions

配置Kotlin环境等属性

buildFeatures

用于配置启用viewBinding,替代findViewById

dependencies

该闭包可指定当前项目的所有依赖关系,非常强大!

总结

该文章后续还会更新内容,本文采用当前最新的项目构建,一些配置信息需要作者慢慢整理,敬请期待,谢谢各位观看支持!

相关文章
|
1月前
|
移动开发 前端开发 Android开发
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
239 12
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
1月前
|
移动开发 JavaScript 应用服务中间件
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
205 5
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
1月前
|
移动开发 Rust JavaScript
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
524 4
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
2月前
|
开发工具 Android开发
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
489 11
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
|
1月前
|
移动开发 Android开发
【03】建立隐私关于等相关页面和内容-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【03】建立隐私关于等相关页面和内容-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
122 0
|
2月前
|
缓存 Unix Android开发
Android安卓项目调试之Gradle 与 Gradle Wrapper的概念以及常用gradle命令深度详解-优雅草卓伊凡
Android安卓项目调试之Gradle 与 Gradle Wrapper的概念以及常用gradle命令深度详解-优雅草卓伊凡
291 8
|
2月前
|
存储 API Android开发
【02】完整的安卓二次商业实战-配置gradle-构建打包原生安卓项目-调试本地运行模拟器-优雅草伊凡
【02】完整的安卓二次商业实战-配置gradle-构建打包原生安卓项目-调试本地运行模拟器-优雅草伊凡
180 4
【02】完整的安卓二次商业实战-配置gradle-构建打包原生安卓项目-调试本地运行模拟器-优雅草伊凡
|
2月前
|
Java 开发工具 Maven
【01】完整的安卓二次商业实战-详细的初级步骤同步项目和gradle配置以及开发思路-优雅草伊凡
【01】完整的安卓二次商业实战-详细的初级步骤同步项目和gradle配置以及开发思路-优雅草伊凡
199 6
|
4月前
|
移动开发 Java 编译器
Kotlin与Jetpack Compose:Android开发生态的演进与架构思考
本文从资深Android工程师视角深入分析Kotlin与Jetpack Compose在Android系统中的技术定位。Kotlin通过空安全、协程等特性解决了Java在移动开发中的痛点,成为Android官方首选语言。Jetpack Compose则引入声明式UI范式,通过重组机制实现高效UI更新。两者结合不仅提升开发效率,更为跨平台战略和现代架构模式提供技术基础,代表了Android开发生态的根本性演进。
181 0
|
人工智能 移动开发 Java
Android Studio插件版本与Gradle 版本对应关系
Android Studio插件版本与Gradle 版本对应关系
3973 0
Android Studio插件版本与Gradle 版本对应关系

推荐镜像

更多
下一篇
oss云网关配置