Hilt - 更簡(jiǎn)潔的方式開發(fā)Android應(yīng)用

注:這里只是做一個(gè)簡(jiǎn)單的記錄,方便以后查找如何引入。

Hilt簡(jiǎn)介

Hilt 是 Android 的依賴項(xiàng)注入庫(kù),可減少在項(xiàng)目中執(zhí)行手動(dòng)依賴項(xiàng)注入的樣板代碼。執(zhí)行手動(dòng)依賴項(xiàng)注入要求您手動(dòng)構(gòu)造每個(gè)類及其依賴項(xiàng),并借助容器重復(fù)使用和管理依賴項(xiàng)。

Hilt 通過(guò)為項(xiàng)目中的每個(gè) Android 類提供容器并自動(dòng)管理其生命周期,提供了一種在應(yīng)用中使用 DI(依賴項(xiàng)注入)的標(biāo)準(zhǔn)方法。Hilt 在熱門 DI 庫(kù) Dagger 的基礎(chǔ)上構(gòu)建而成,因而能夠受益于 Dagger 的編譯時(shí)正確性、運(yùn)行時(shí)性能、可伸縮性和 Android Studio 支持。

Hilt與Dagger的關(guān)系

Hilt 在依賴項(xiàng)注入庫(kù) Dagger 的基礎(chǔ)上構(gòu)建而成,提供了一種將 Dagger 納入 Android 應(yīng)用的標(biāo)準(zhǔn)方法。

關(guān)于 Dagger,Hilt 的目標(biāo)如下:

  • 簡(jiǎn)化 Android 應(yīng)用的 Dagger 相關(guān)基礎(chǔ)架構(gòu)。
  • 創(chuàng)建一組標(biāo)準(zhǔn)的組件和作用域,以簡(jiǎn)化設(shè)置、提高可讀性以及在應(yīng)用之間共享代碼。
  • 提供一種簡(jiǎn)單的方法來(lái)為各種 build 類型(如測(cè)試、調(diào)試或發(fā)布)配置不同的綁定。

由于 Android 操作系統(tǒng)會(huì)實(shí)例化它自己的許多框架類,因此在 Android 應(yīng)用中使用 Dagger 要求您編寫大量的樣板。Hilt 可減少在 Android 應(yīng)用中使用 Dagger 所涉及的樣板代碼。Hilt 會(huì)自動(dòng)生成并提供以下各項(xiàng):

  • 用于將 Android 框架類與 Dagger 集成的組件 - 您不必手動(dòng)創(chuàng)建。
  • 作用域注解 - 與 Hilt 自動(dòng)生成的組件一起使用。
  • 預(yù)定義的綁定 - 表示 Android 類,如 ApplicationActivity。
  • 預(yù)定義的限定符 - 表示 @ApplicationContext@ActivityContext。

Dagger 和 Hilt 代碼可以共存于同一代碼庫(kù)中。不過(guò),在大多數(shù)情況下,最好使用 Hilt 管理您在 Android 上對(duì) Dagger 的所有使用。

如何使用Hilt?

  1. 項(xiàng)目根目錄build.gradle.kts添加支持:
    plugins {
         ...
         id("com.google.dagger.hilt.android") version "2.44" apply false
    }
    
  2. 應(yīng)用模塊build.gradle.kts添加支持,如下:
    plugins {
      kotlin("kapt")
      id("com.google.dagger.hilt.android")
    }
    android {
      ...
    }
    dependencies {
      implementation("com.google.dagger:hilt-android:2.44")
      kapt("com.google.dagger:hilt-android-compiler:2.44")
    }
    // Allow references to generated code
    kapt {
      correctErrorTypes = true
    }
    
  3. 其他步驟:
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容