1. 引入關(guān)鍵字列表
4.x+版本 | 老版本(棄用) | 說(shuō)明 |
---|---|---|
api | compile | 打包并傳遞 |
implementation | compile | 打包不傳遞 |
compileOnly | provided | 只在編譯時(shí)用 |
runtimeOnly | apk | 只在運(yùn)行時(shí)用 打包到apk |
testImplementation | testCompile | 只在test用 打包到測(cè)試包 |
androidTestImplementation | androidTestCompile | 只在android test用 打包到測(cè)試包 |
debugImplementation | debugCompile | 只在debug模式有效 打包到debug包 |
releaseImplementation | releaseCompile | 只在release模式有效 打包到release包 |
2. 關(guān)鍵字說(shuō)明
api
打包輸出到aar或apk,并且依賴向上傳遞。
implementation
打包輸出到aar或apk,依賴不傳遞合住。
compileOnly
編譯時(shí)使用,不會(huì)打包到輸出(aar或apk)劫哼。
runtimeOnly
只在生成apk的時(shí)候參與打包万细,編譯時(shí)不會(huì)參與戒傻,很少用蒂胞。
testImplementation
只在單元測(cè)試代碼的編譯以及最終打包測(cè)試apk時(shí)有效图呢。
androidTestImplementation
只在Android相關(guān)單元測(cè)試代碼的編譯以及最終打包測(cè)試apk時(shí)有效。
debugImplementation
只在 debug 模式的編譯和最終的 debug apk 打包時(shí)有效
releaseImplementation
僅僅針對(duì) Release 模式的編譯和最終的 Release apk 打包骗随。
3. 各種依賴寫法
本地項(xiàng)目依賴
dependencies {
implementation project(':projectABC')
}
本地包依賴
dependencies {
// 批量引入
implementation fileTree(dir: 'libs', include: ['*.jar'])
// 單個(gè)引入
implementation files('libs/aaa.jar', 'libs/bbb.jar')
implementation files('x/y/z/ccc.jar')
}
遠(yuǎn)程包依賴
dependencies {
// 簡(jiǎn)寫
implementation 'androidx.appcompat:appcompat:1.0.2'
// 完整寫法
implementation group: 'androidx.appcompat', name:'appcompat', version:'1.0.2'
}
根據(jù)Task類型(debug, release, test)引入
dependencies {
// test
testImplementation 'junit:junit:4.12'
// android test
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
// debug
debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.0-beta-2'
// release
releaseImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:2.0-beta-2'
}
排除引用(解決引入沖突)
dependencies {
implementation ('com.github.bumptech.glide:glide:4.9.0'){
exclude group:'com.android.support', module: 'support-fragment'
exclude group:'com.android.support', module: 'support-core-ui'
exclude group:'com.android.support', module: 'support-compat'
exclude group:'com.android.support', module: 'support-annotations'
}
}