支援資料庫

注意:隨著 Android 9.0 (API 級別 28) 推出,我們已推出名為 AndroidX 的新版支援資料庫 Jetpack。AndroidX 程式庫包含現有的支援資料庫,以及最新的 Jetpack 元件。

您可以繼續使用支援資料庫。您還是可以在 Google Maven 存取過往構件 (版本 27 以下版本,且封裝為 android.support.*)。不過,所有新的程式庫開發作業都會在 AndroidX 程式庫中進行。

建議您在所有新專案中使用 AndroidX 程式庫。您也應考慮將現有專案遷移至 AndroidX。

開發支援多個 API 版本的應用程式時,您可能會希望透過標準方式在舊版 Android 上提供新功能,或輕鬆改回採用同等的功能。與其建構程式碼來處理舊版平台,您可以善用這些程式庫來提供相容性層。此外,支援資料庫提供標準 Framework API 所沒有的額外便利類別和功能,更輕鬆地在更多裝置上進行開發和支援。

Android 支援資料庫最初是應用程式適用的單一二進位檔程式庫,現在已發展成一套用於開發應用程式的程式庫。如果這不是必要的應用程式開發過程中,強烈建議您使用其中的許多程式庫。

本文件將概略介紹支援資料庫,協助您瞭解其元件,以及如何在應用程式中有效使用程式庫。

注意:從支援資料庫 26.0.0 版 (2017 年 7 月) 開始,大多數支援程式庫支援的最低 API 級別已提升至 Android 4.0 (API 級別 14),適用於大多數程式庫套件。詳情請參閱本頁的「版本支援和套件名稱」一節。

支援資料庫的用途

支援資料庫有幾種獨特用途。舊版平台的回溯相容性類別只是其中一種。以下提供更完整的清單,說明在應用程式中使用支援資料庫的方式:

  • 較新的 API 的回溯相容性 - 大部分的支援資料庫都能為較新的架構類別和方法提供回溯相容性。舉例來說,Fragment 支援類別在搭載 Android 3.0 (API 級別 11) 以下版本的裝置上提供片段的支援功能。
  • 便利與輔助類別 - 支援資料庫提供多種輔助類別,尤其是關於使用者介面的開發作業。舉例來說,RecyclerView 類別提供使用者介面小工具,可用來顯示及管理長清單,而且適用於 API 級別 7 以上的 Android 版本。
  • 偵錯和公用程式 - 除了已新增至應用程式的程式碼之外,還有許多功能可提供實用的功能,包括運用 support-annotations 程式庫改善方法輸入內容的程式碼 Lint 檢查功能,以及透過 Multidex 支援,設定及發布超過 65,536 種方法的應用程式。

使用支援或 Framework API

支援資料庫提供的類別和方法與 Android 架構中的 API 非常相似。得知這一點後,您可能會好奇自己是否該使用 API 架構版本,還是應使用相等的支援資料庫。以下說明何時應使用支援資料庫類別取代 Framework API:

  • 特定功能的相容性:如要在搭載舊版平台的裝置上支援最新平台功能,請使用支援資料庫中的對等類別和方法。
  • 相關程式庫功能的相容性 - 較複雜的支援資料庫類別可能會依附於一或多個額外的支援資料庫類別,因此您應針對這些依附元件使用支援資料庫類別。舉例來說,ViewPager 支援類別應與 FragmentPagerAdapterFragmentStatePagerAdapter 支援類別搭配使用。
  • 一般裝置相容性:如果您未打算以回溯相容的方式與應用程式搭配使用的特定平台功能,我們仍建議您在應用程式中使用支援資料庫類別。舉例來說,您可能想要使用 ActivityCompat 取代架構 Activity 類別,以便使用後續推出的新功能,例如加入 Android 6.0 推出的新權限模型。

如果支援資料庫類別提供相容的平台 API 類別實作項目,可能會因主機裝置平台版本的限制,而無法提供最新版本的完整功能。在這些情況下,支援資料庫類別的設計旨在優雅降級,可能無法提供目前平台 API 的所有功能或資料。因此,建議您詳閱所用程式庫類別和方法的參考說明文件,並在搭載應用程式最舊版平台版本的裝置上進行完整測試。

注意:支援資料庫不會為每個架構 API 提供對等的類別和方法。在某些情況下,您可能需要透過明確的 SDK 版本檢查,納入架構方法呼叫,並提供替代程式碼來處理裝置上無法使用的方法。如要進一步瞭解如何在程式碼中使用版本檢查,請參閱「支援不同的平台版本」。

版本支援和套件名稱

部分支援資料庫套件會使用套件名稱,以 v# 標記法 (例如 support-v4 套件) 表示原本支援的 API 最低級別。自支援資料庫 26.0.0 版 (於 2017 年 7 月推出) 起,所有支援資料庫套件支援的最低 API 級別已改為 Android 4.0 (API 級別 14)。因此,處理任何較新版本的支援資料庫時,請不要假設 v# 套件標記法表示最低 API 支援等級。在近期推出的版本中,這項變更也代表使用 v4 和 v7 的程式庫套件,基本上等於其支援的 API 最低級別。 舉例來說,對於 26.0.0 以上版本的支援資料庫,support-v4 和 support-v7 套件都支援最低 API 級別 14。

支援資料庫版本

支援資料庫的 發布版本 (例如 24.2.0 或 25.0.1) 與該版本中所有程式庫支援的最低 API 級別不同。發布版本號碼代表建構該版本時使用的平台 API 版本,因此這個版本的程式庫可能會包含最新的 API。

具體來說,第一個版本的發布版本號碼 (例如 24.2.0 版中的 24) 通常會對應至發布時可用的平台 API 版本。支援資料庫的版本層級代表這個版本包含該 API 級別的部分功能,但請勿假設該版本可與新平台 API 版本中發布的「所有」功能相容。

程式庫依附元件

Android 支援資料庫套件中的大多數程式庫都有一或多個程式庫依附元件。舉例來說,幾乎所有支援程式庫都依附於 support-compat 套件。一般而言,您不必擔心支援程式庫依附元件,因為 Gradle 建構工具會自動納入相依程式庫,為您管理程式庫依附元件。

如要查看應用程式中包含哪些程式庫和程式庫依附元件,請在應用程式開發專案的建構根目錄中執行下列指令,即可取得該專案的依附元件報表 (包括 Android 支援資料庫和其他程式庫):

gradle -q dependencies your-app-project:dependencies

如要進一步瞭解如何使用 Gradle 將支援資料庫新增至開發專案,請參閱「支援資料庫設定」。如要進一步瞭解如何使用 Gradle,請參閱「設定建構作業」。

請注意,所有 Android 支援資料庫也依附於平台的部分基本級別,如為近期版本,即 Android 4.0 (API 級別 14) 以上版本。