面向 Android 开发者的 Gradle - 充分利用它_gradle console在哪里(1)

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip204888 (备注Android)
img

正文

根据定义,Gradle 是一个专注于灵活性和性能的开源构建自动化工具

因此,简单地说,它是一个生成应用程序构建的自动化工具。Gradle 是 Android 的官方构建工具。

Gradle在Android开发中的作用

每当我们尝试通过 USB 将开发的代码运行到模拟器或实际设备中时,我们都可以在 IDE 中看到“Gradle Build Running”的过程。

这是 Gradle 帮助将 Java 和 Kotlin 代码编译成 APK 的时候。那么如果 Gradle 可以做到这一点,那么什么是 Android Gradle 插件呢?

Android Gradle 插件

想知道一个有趣的事实吗?无论是 Android Studio 还是 Gradle,都不知道如何将 Java 和 Kotlin 代码编译成 APK。

那么,Gradle 如何在构建过程中提供帮助?从官方 Android 开发者网站的这个链接中,我们可以看到:

Gradle 的 Android 插件与构建工具包一起工作,以提供特定于构建和测试 Android 应用程序的流程和可配置设置。

Gradle 插件

仅 Gradle 无法完成大部分自动化构建过程。这就是为什么如果我们回到我们提到 Gradle 定义的部分,它的重点是“灵活性”。

回想一下,作为 Android 开发人员,我们项目中必须使用的第三方库应该作为依赖项添加到我们的应用级 Gradle 文件中,并且只有在将 Gradle 与项目同步后才能访问它们的类。这就是 Gradle 通过提供“插件”功能而足够灵活的原因。

您可以在此处查看所有可供下载的 Gradle 插件以及 Gradle 本身提供的核心插件列表。

Android 项目中的多个 build.gradle 文件

每次,我们启动一个新的 Android 项目,我们都可以看到存在两个不同的 build.gradle 文件。一个在项目级别,另一个在应用级别。那么,这里的“应用程序”是什么?“app”是项目的一个模块。现在,什么是模块?根据 Android 开发者的文档,

模块是源文件和构建设置的集合,允许您将项目划分为离散的功能单元。您的项目可以有一个或多个模块,一个模块可能使用另一个模块作为依赖项。每个模块都可以独立构建、测试和调试。由于模块是基于功能的,每个模块都有其依赖项或第三方库,因此每个模块都有自己的 Gradle文件。想了解项目中可以包含哪些不同类型的模块?你可以看看这里。

build.gradle 文件中的字段


从项目级别的 build.gradle 文件来看,我们应该了解的主要是三个字段(区域):

  1. 要从中下载项目依赖项的存储库(在本例中为 google 和 jcenter)
  2. 项目级别所需的依赖项(对所有子项目或模块有用)。我们可以看到整个项目都使用了 Gradle 依赖项和 kotlin依赖项,因此在这里(在项目级别)声明了它。
  3. 要下载所有子项目/模块的存储库(在本例中为 google 和 jcenter)

    1.我们添加了所需的插件:android Gradle 插件以及所需的 kotlin 插件
    2.这是列出所有要求的 android块。这仅适用于我们在步骤 1 中应用了 android Gradle 插件。
    3.根据要求包含的不同构建类型。您可以在此处了解有关构建类型的更多信息。
    4.最后,此相应模块或子项目所需的所有第三方依赖项。

当构建过程在 Android Studio 上启动时会发生什么?

现在我们已经了解了为什么我们有不同的 build.gradle 文件以及 Gradle 文件中不同的字段表示什么,让我们了解单击运行按钮时会发生什么。来自官方文档

用一句话来说:

编译器将您的源代码转换为 DEX(Dalvik 可执行文件)文件,其中包括在 Android 设备上运行的字节码,以及将其他所有内容转换为已编译资源的文件。
APK 打包器将 DEX 文件和编译资源组合到一个 APK 中。在您的应用程序可以安装并部署到 Android 设备上之前,必须对 APK 进行签名。
APK Packager 使用调试或发布密钥库对您的 APK 进行签名。
如果您正在构建应用程序的调试版本,即仅打算用于测试和分析的应用程序,则打包程序会使用调试密钥库对您的应用程序进行签名。Android Studio 使用调试密钥库自动配置新项目。
如果您正在构建您打算在外部发布的应用程序的发布版本,则打包程序会使用发布密钥库对您的应用程序进行签名。
要创建发布密钥库,请阅读有关在 Android Studio 中为您的应用签名的信息。
在生成最终 APK 之前,打包程序使用zipalign工具优化您的应用程序,以便在设备上运行时使用更少的内存。
在构建过程结束时,您拥有应用的调试 APK 或发布 APK,可用于部署、测试或发布给外部用户。

Gradle任务

Gradle Task 是 Gradle 执行的操作。例如,当在 Android Studio 中按下运行按钮时,会触发 Gradle 任务。

如果我们从底部导航栏保持构建窗口打开并单击运行图标,可以在控制台上观察到 Gradle 任务列表。

通过命令行运行 Gradle 任务

我们可以通过命令行实现 Gradle 任务部分中讨论的相同行为吗?是的,我们可以从底部导航栏打开终端并输入:

./gradlew assembleDebug --console plain


我们可以看到,这与我们通过单击 Android Studio 中的运行按钮观察到的任务集相同。因此,这里通过单击运行按钮触发的任务是“assembleDebug”。这里的描述来自我们使用的命令;

  1. ./gradlew表示使用 Gradle Wrapper。强烈建议始终使用 Wrapper 版本。您可以在此处了解有关 Gradle Wrapper的更多信息
  2. assembleDebug是我们刚刚要求它运行的任务的名称。
  3. –console plain 告诉 Gradle 打印出构建日志,就像您在 Android Studio 中看到的一样。提及这一点是完全可选的。

同样,如果要查看可用的 Gradle 任务列表,可以使用以下命令:

./gradlew tasks

您将能够看到所有可用 Gradle 任务的列表:

我们还可以观察到,从终端执行命令显示的任务列表与右上角 Gradle 控制台中可用的任务相似。

创建自定义任务

总结

作为一名从事Android的开发者,很多人最近都在和我吐槽Android是不是快要凉了?而在我看来这正是市场成熟的表现,所有的市场都是温水煮青蛙,永远会淘汰掉不愿意学习改变,安于现状的那批人,希望所有的人能在大浪淘沙中留下来,因为对于市场的逐渐成熟,平凡并不是我们唯一的答案!

资料.png
资料图.jpg

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注Android)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

以添加V获取:vip204888 (备注Android)**
[外链图片转存中…(img-7PUoDblj-1713172693229)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 23
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值