它们在使用上有什么不同呢
Project-buildSrc
- 在项目根目录下新建一个名为 buildSrc 的文件夹( 名字必须是 buildSrc,因为运行 Gradle 时会检查项目中是否存在一个名为 buildSrc 的目录 )
- 在 buildSrc 文件夹里创建名为 build.gradle.kts 的文件,添加以下内容
plugins {
kotlin-dsl
}
repositories{
jcenter()
}
- 在
buildSrc/src/main/java/包名/
目录下新建 Deps.kt 文件,添加以下内容
object Versions {
…
val appcompat = “1.1.0”
…
}
object Deps {
…
val appcompat = “androidx.appcompat:appcompat:${Versions.appcompat}”
…
}
- 重启你的 Android Studio,项目里就会多出一个名为 buildSrc 的 module,实现上面演示的效果
Project-ComposingBuild
- 新建的 module 名称 versionPlugin
- 在 versionPlugin 文件夹下的 build.gradle 文件内,添加以下内容
buildscript {
repositories {
jcenter()
}
dependencies {
// 因为使用的 Kotlin 需要需要添加 Kotlin 插件
classpath “org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.72”
}
}
apply plugin: ‘kotlin’
apply plugin: ‘java-gradle-plugin’
repositories {
// 需要添加 jcenter 否则会提示找不到 gradlePlugin
jcenter()
}
gradlePlugin {
plugins {
version {
// 在 app 模块需要通过 id 引用这个插件
id = ‘com.hi.dhl.plugin’
// 实现这个插件的类的路径
implementationClass = ‘com.hi.dhl.plugin.Deps’
}
}
}
- 在
versionPlugin/src/main/java/包名/
目录下新建 Deps.kt 文件,添加以下内容
class Deps : Plugin {
override fun apply(project: Project) {
}
companion object {
val appcompat = “androidx.appcompat:appcompat:1.1.0”
}
}
- 在 settings.gradle 文件内添加
includeBuild 'versionPlugin'
重启你的 Android Studio - 在 app 模块 build.gradle 文件内首行添加以下内容,就可以实现上面演示的效果
plugins{
// 这个 id 就是在 versionPlugin 文件夹下 build.gradle 文件内定义的 id
id “com.hi.dhl.plugin”
}
ps:plugins{} 需要放在 app 模块 build.gradle 文件内首行位置
Project-ComposingBuild 比 Project-buildSrc 多了两步操作需要在 settings.gradle 和 build.gradle 引入插件,两者在使用都是差不多的
如何快速使用 buildSrc
- 访问 ComposingBuilds-vs-buildSrc 拷贝 buildSrc 文件夹到你的项目的根目录
- 重启你的 Android Studio,项目里就会多出一个名为 buildSrc 的 module
如何快速使用 Composing builds
- 访问 ComposingBuilds-vs-buildSrc 拷贝 versionPlugin 文件夹到你的项目的根目录
- 按照上面的配置方式,分配在 settings.gradle 和 app 模块的 build.gradle 引用插件即可
总结
总共从以下几个方面对比了 Composing builds 和 buildSrc
- 目录结构:它们的基本目录结构是相同的,可以根据自己的项目进行不同的扩展
- 编译速度:当修改了版本号,Project-buildSrc 项目 Build 的时间几乎是 Project-ComposingBuild 项目的 4.6 倍( PS: 每个人的环境不同,时间上会有差异,但是 Project-buildSrc 的时间总是大于 Project-ComposingBuild )
- 使用上的区别:Composing builds 比 buildSrc 多了两步操作需要在 settings.gradle 和 build.gradle 引入插件
Project-buildSrc 和 Project-ComposingBuild 相关代码已经上传到 GitHub 了:ComposingBuilds-vs-buildSrc
到目前为止大概管理 Gradle 依赖提供了 4 种不同方法:
- 手动管理 :在每个 module 中定义插件依赖库,每次升级依赖库时都需要手动更改(不建议使用)
- 使用 ext 的方式管理插件依赖库 :这是 Google 推荐管理依赖的方法 Android官方文档
- Kotlin + buildSrc:自动补全和单击跳转,依赖更新时 将重新 构建整个项目
- Composing builds:自动补全和单击跳转,依赖更新时 不会重新 构建整个项目
buildSrc 如何迁移到 Composing builds?
如果当前项目使用的是 buildSrc 方式,迁移到 Composing builds 很简单,需要将 buildSrc 内容拷贝的 Composing builds 中,然后删掉 buildSrc 文件夹就可以即可
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
最后
今天关于面试的分享就到这里,还是那句话,有些东西你不仅要懂,而且要能够很好地表达出来,能够让面试官认可你的理解,例如Handler机制,这个是面试必问之题。有些晦涩的点,或许它只活在面试当中,实际工作当中你压根不会用到它,但是你要知道它是什么东西。
最后在这里小编分享一份自己收录整理上述技术体系图相关的几十套腾讯、头条、阿里、美团等公司2021年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。
还有 高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。
【Android核心高级技术PDF文档,BAT大厂面试真题解析】
【算法合集】
【延伸Android必备知识点】
【Android部分高级架构视频学习资源】
710687495915)]
【算法合集】
[外链图片转存中…(img-HTsUnao2-1710687495916)]
【延伸Android必备知识点】
[外链图片转存中…(img-HyOziOjn-1710687495916)]
【Android部分高级架构视频学习资源】
Android精讲视频领取学习后更加是如虎添翼!进军BATJ大厂等(备战)!现在都说互联网寒冬,其实无非就是你上错了车,且穿的少(技能),要是你上对车,自身技术能力够强,公司换掉的代价大,怎么可能会被裁掉,都是淘汰末端的业务Curd而已!现如今市场上初级程序员泛滥,这套教程针对Android开发工程师1-6年的人员、正处于瓶颈期,想要年后突破自己涨薪的,进阶Android中高级、架构师对你更是如鱼得水,赶快领取吧!