文章目錄
打開項目的 build.gradle 文件(而不是應用或模塊的該文件)並添加 google() 代碼庫,如下所示:
allprojects {
repositories {
google()
jcenter()
}
}
聲明依賴項
Futures(可在 androidx.concurrent 中找到)
要添加 Futures 的依賴項,您必須將 Google Maven 代碼庫添加到項目中。請閱讀 Google 的 Maven 代碼庫瞭解詳情。
在頂級build.gradle文件中
allprojects {
repositories {
google()
// If you're using a version of Gradle lower than 4.1, you must instead use:
// maven {
// url 'https://maven.google.com'
// }
// An alternative URL is 'https://dl.google.com/dl/android/maven2/'
}
}
在應用或模塊的 build.gradle 文件中添加所需工件的依賴項:
dependencies {
implementation "androidx.concurrent:concurrent-futures:1.0.0"
// Kotlin
implementation "androidx.concurrent:concurrent-futures-ktx:1.1.0-alpha01"
}
生命週期組件(包括 ViewModel)
dependencies {
def lifecycle_version = "2.2.0"
def arch_version = "2.1.0"
// ViewModel
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"
// LiveData
implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version"
// Lifecycles only (without ViewModel or LiveData)
implementation "androidx.lifecycle:lifecycle-runtime-ktx:$lifecycle_version"
// Saved state module for ViewModel
implementation "androidx.lifecycle:lifecycle-viewmodel-savedstate:$lifecycle_version"
// Annotation processor
kapt "androidx.lifecycle:lifecycle-compiler:$lifecycle_version"
// alternately - if using Java8, use the following instead of lifecycle-compiler
implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version"
// optional - ReactiveStreams support for LiveData
implementation "androidx.lifecycle:lifecycle-reactivestreams-ktx:$lifecycle_version"
// optional - Test helpers for LiveData
testImplementation "androidx.arch.core:core-testing:$arch_version"
}
導航(包括 SafeArgs)
導航
dependencies {
def nav_version = "2.3.0-alpha01"
// Java language implementation
implementation "androidx.navigation:navigation-fragment:$nav_version"
implementation "androidx.navigation:navigation-ui:$nav_version"
// Kotlin
implementation "androidx.navigation:navigation-fragment-ktx:$nav_version"
implementation "androidx.navigation:navigation-ui-ktx:$nav_version"
// Dynamic Feature Module Support
implementation "androidx.navigation:navigation-dynamic-features-fragment:$nav_version"
// Testing Navigation
androidTestImplementation "androidx.navigation:navigation-testing:$nav_version"
}
Safe Args
在頂級 build.gradle 文件中包含以下 classpath
buildscript {
repositories {
google()
}
dependencies {
def nav_version = "2.3.0-alpha01"
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version"
}
}
//For Java
apply plugin: "androidx.navigation.safeargs"
//For kotlin
apply plugin: "androidx.navigation.safeargs.kotlin"
Paging
dependencies {
def paging_version = "2.1.1"
// For Kotlin use paging-runtime-ktx
implementation "androidx.paging:paging-runtime:$paging_version"
// alternatively - without Android dependencies for testing
// For Kotlin use paging-common-ktx
testImplementation "androidx.paging:paging-common:$paging_version"
// optional - RxJava support
// For Kotlin use paging-rxjava2-ktx
implementation "androidx.paging:paging-rxjava2:$paging_version"
}
Room
dependencies {
def room_version = "2.2.3"
implementation "androidx.room:room-runtime:$room_version"
// For Kotlin use kapt instead of annotationProcessor
annotationProcessor "androidx.room:room-compiler:$room_version"
// optional - Kotlin Extensions and Coroutines support for Room
implementation "androidx.room:room-ktx:$room_version"
// optional - RxJava support for Room
implementation "androidx.room:room-rxjava2:$room_version"
// optional - Guava support for Room, including Optional and ListenableFuture
implementation "androidx.room:room-guava:$room_version"
// Test helpers
testImplementation "androidx.room:room-testing:$room_version"
}
備註:
Room 具有以下注釋處理器選項:
room.schemaLocation:配置並啓用將數據庫架構導出到給定目錄中的 JSON 文件的功能。如需瞭解詳情,請參閱 Room 遷移。
room.incremental:啓用 Gradle 增量註釋處理器。
room.expandProjection:配置 Room 以重新編寫查詢,使其頂部星形投影在展開後僅包含 DAO 方法返回類型中定義的列。
示例如下
android {
...
defaultConfig {
...
javaCompileOptions {
annotationProcessorOptions {
arguments = [
"room.schemaLocation":"$projectDir/schemas".toString(),
"room.incremental":"true",
"room.expandProjection":"true"]
}
}
}
}
WorkManager
dependencies {
def work_version = "2.3.1"
// (Java only)
implementation "androidx.work:work-runtime:$work_version"
// Kotlin + coroutines
implementation "androidx.work:work-runtime-ktx:$work_version"
// optional - RxJava2 support
implementation "androidx.work:work-rxjava2:$work_version"
// optional - GCMNetworkManager support
implementation "androidx.work:work-gcm:$work_version"
// optional - Test helpers
androidTestImplementation "androidx.work:work-testing:$work_version"
}