gradle配置优化及dependencies中各种依赖方式说明

更新时间:2023-07-28 06:20:09 阅读: 评论:0

gradle配置优化及dependencies中各种依赖⽅式说明
⼀.前⾔
当我们⽤AndroidStudio新建项⽬时候发现默认的compile已经改为了implementation.
implementation以前并没有接触过,这⾥⼲脆总结⼀下dependencies中各种依赖⽅式的区别.
天下钓鱼
⼆.各种依赖⽅式说明
implementation
这个指令的特点就是,对于使⽤了该命令编译的依赖,对该项⽬有依赖的项⽬将⽆法访问到使⽤该命令编译的依赖中的任何程序,也就是将该依赖隐藏在内部,⽽不对外部公开。
api
火的故事完全等同于compile指令。
compile
这种是我们最常⽤的⽅式,使⽤该⽅式依赖的库将会参与编译和打包。
testCompile
testCompile 只在单元测试代码的编译以及最终打包测试apk时有效。
debugCompile
debugCompile 只在debug模式的编译和最终的debug apk打包时有效。
releaCompile
releaCompile 仅仅针对Relea模式的编译和最终的Relea apk打包。这⾥⽐如
这⾥⽐如我们使⽤的leakcanary
debugCompile 'com.squareup.leakcanary:leakcanary-android:1.+'
乳酸菌发酵releaCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.+'
testCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.+'
provided
只在编译时有效,不会参与打包,可以在⾃⼰的moudle中使⽤该⽅式依赖。⽐如com.android.support,gson这些使⽤者常⽤的库,避免冲突。
apk(runtimeOnly)
只在⽣成apk的时候参与打包,编译时不会参与,很少⽤。
三.依赖版本号处理
正常我们引⼊⼀个库可能直接指定了版本号
compile ‘de.gson:gson:2.8.0’
那么可以不指定版本号吗?答案是可以的,⽐如:
compile ‘de.gson:gson:2.+’ 引⼊gson ⼤版本为2的包
compile ‘de.gson:lea’引⼊gson 最新的包
四.统⼀管理版本号
1.在根⽬录下的adle⽂件下添加 ext{ …. } 中的内容
ext{
//dependencies
supportLibraryVersion ='26.1.0'
种播
瑞士旅游攻略gsonVersion = '2.8.0'
世界杯日程表}
使⽤⽰例
PILE_SDK_VERSION
2.使⽤⾃定义gradle
当然以上⽅式还有更好的解决⽅案
⾸先我们在项⽬根⽬录下创建⼀个任意命名的adle⽂件. 例如 : adle
ext {
android = [
劁猪
compileSdkVersion: 26,
buildToolsVersion: "25.0.0",
minSdkVersion    : 14,
targetSdkVersion : 22,
versionCode      : 17,
versionName      : "1.7",
applicationId    : "com.king.headline",
applicationId2222: "com.king.headline",
]
网球场标准尺寸dependencies = [
appcompatv7: "com.android.support:design:22.2.0",
loadtoast: "net.steamcrafted:load-toast:1.0.6",
constraintlayout: "com.straint:constraint-layout:1.0.2"
]
}
使⽤
1. 根⽬录下的adle于引⽤当前gradle
apply from : “adle”
2. app下的adle先定义出引⽤
def cfg = android
def dpc = dependencies
3. 使⽤
pileSdkVersion
buildToolsVersion cfg.buildToolsVersion
4.完整⽰例
apply plugin:'com.android.application'
def cfg = android
def dpc = dependencies
android {
pileSdkVersion
buildToolsVersion cfg.buildToolsVersion
defaultConfig {
applicationId "com.king.headline"
minSdkVersion 14
targetSdkVersion 22
versionCode 17
versionName "1.7"
}
buildTypes {
relea {
minifyEnabled fal
proguardFiles getDefaultProguardFile(''), 'proguard-rules.pro'        }
}
}
dependencies {
compile fileTree(dir:'libs', include: ['*.jar'])
compile dpc.loadtoast
compile dpc.appcompatv7
straintlayout
}

本文发布于:2023-07-28 06:20:09,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1121286.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:编译   依赖   版本号
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图