認識Android Support Library

本文目的:認識Android Support Library

本文轉載於官網android

Android 支持庫提供了諸多未內置於框架的功能。這些庫提供向後兼容版本的新功能、框架中未包含的實用 UI 元素,以及應用能夠利用的一系列實用程序。編程

概覽

許多狀況下,某項功能可能對應用開發者頗有用,可是添加到 Android 框架卻並不合適。例如,某個應用可能僅須要用於特定用例的某項功能,如在不一樣版本的 Android 系統之間順暢切換。設計模式

爲了解決這一問題,Android SDK 添加了多個庫,這些庫統稱爲 Android 支持庫。若是應用開發者想要在應用中集成庫功能,他們能夠添加其中任意一個庫。網絡

支持庫提供一系列不一樣的功能:app

  • 向後兼容版本的框架組件。
  • 用於實現建議的 Android 佈局模式的 UI 元素。
  • 支持不一樣的設備類型。
  • 其餘實用程序功能。

向後兼容性

支持庫可讓在舊版本 Android 平臺上運行的應用支持爲新版本平臺推出的功能。例如,應用在依賴於框架類的 5.0(API 級別 21)版本如下的 Android 系統上運行時,將沒法顯示 Material Design 元素,由於該版本的 Android 框架不支持 Material Design。可是,若是此應用添加了支持庫的 appcompat 庫,則能夠訪問 API 級別 21 中具備的許多功能,其中包括對 Material Design 的支持。所以,您的應用能夠在多個平臺版本中提供更爲一致的體驗。框架

某些狀況下,類的支持庫版本很大程度上取決於框架提供的功能。所以,若是應用調用其中一個支持類的方法,則支持庫的行爲將取決於運行應用的 Android 版本。若是框架提供必要的功能,則支持庫將經過調用框架執行任務。若是應用在舊版本的 Android 上運行,且框架未顯示所需的功能,則支持庫自身可能會嘗試提供功能或什麼都不作。不管是哪種情形,應用一般都不須要檢查其在哪一版本的 Android 上運行,而是經過支持庫執行檢查並選擇適當的行爲。一般狀況下,名稱以 …Compat(如 ActivityCompat)結束的類便是如此。ide

而另一些狀況下,支持庫類提供一個不依賴於任何框架 API 可用性的完整、獨立版框架類。這些方法能夠在支持的全部平臺中提供一致的行爲。工具

不管是哪種情形,應用均無需在運行期間檢查系統版本。應用可經過支持庫類執行適當的系統檢查,並在必要時修改其行爲。佈局

支持通常佈局模式

支持庫提供 Android 框架中未提供的用戶界面元素。例如,Android 支持庫提供其餘佈局類,如 DrawerLayout。這些類遵循建議的 Android 設計作法;例如,設計庫以一種適合多個 Android 版本的方式遵循 Material Design 的原則。大數據

經過使用這些支持庫類,您能夠避免作一些重複性工做;若是應用有特殊的用戶界面要求,您能夠利用現有代碼,這些代碼將提供用戶已經熟悉的用戶界面。這些元素還能夠幫助您開發看起來像 Android 生態系統一部分的應用。例如,許多應用須要顯示任意長的元素列表,且須要可以在列表發生變化時快速有效地重複使用這些元素;這能夠是電子郵件列表、聯繫人列表以及音樂專輯列表,等等。這些應用可使用支持庫 RecyclerView 小部件顯示列表。這既可讓應用開發者沒必要從頭開始開發列表,又能確保用戶看到一個外觀和行爲與其餘應用中的列表相似的列表。

支持不一樣的設備類型

Android SDK 爲 TV 和穿戴式設備等多種不一樣的設備類型提供庫。應用能夠經過相應的支持庫爲各類平臺版本提供功能,且能夠在外部屏幕、揚聲器和其餘目標設備上提供內容。

通常實用程序

Android 支持庫提供後向兼容的實用程序功能。應用可使用這些實用程序功能爲各類 Android 系統版本提供相應的用戶體驗。例如,支持庫的權限處理方式取決於運行應用的平臺版本。若是平臺支持運行時權限模式,這些方法會向用戶請求相應的權限;在不支持運行時權限模式的平臺版本中,這些方法將在安裝時檢查是否已得到相應的權限。

支持庫功能

Android 支持庫軟件包含能夠添加至應用的多個庫。每一個庫均支持特定範圍的 Android 平臺版本和功能。

本指南介紹了各支持庫提供的重要功能和版本支持,從而幫助您決定在應用中添加哪些支持庫。通常而言,咱們建議添加 v4 支持庫和 v7 appcompat 庫,由於它們支持一系列 Android 版本,而且能夠爲推薦的用戶界面模式提供 API。

要使用如下任一庫,您必須將庫文件下載到 Android SDK 安裝位置中。請按照支持庫設置中下載支持庫的說明完成此步驟。要在應用中添加特定支持庫,您還必須執行其餘步驟。有關如何在應用中添加支持庫的重要信息,請參閱下面各個庫內容的末尾部分。

v4 支持庫

這些庫旨在與 Android 2.3(API 級別 9)及更高版本搭配使用。與其餘支持庫相比,它們包含的 API 集合最大,包括對應用組件、用戶界面功能、輔助功能、數據處理、網絡鏈接以及編程實用工具的支持。

如需瞭解有關 v4 支持庫所提供類和方法的完整詳細信息,請參閱 API 參考中的 android.support.v4 軟件包。

注:在支持庫修訂版 24.2.0 以前,存在一個 v4 支持庫。爲了提升效率,此庫拆分紅多個模塊。出於向後兼容的考慮,若是您在 Gradle 腳本中列出了 support-v4,您的 APK 將包含全部的 v4 模塊。不過,要減小 APK 大小,咱們建議僅列出應用須要的特定模塊。

v4 compat 庫

爲衆多框架 API 提供兼容性包裝器,例如 Context.obtainDrawable() 和 View.performAccessibilityAction()。

此庫的 Gradle 構建腳本依賴關係標識符以下所示:

com.android.support:support-compat:24.2.0

v4 core-utils 庫

提供大量實用程序類,例如 AsyncTaskLoader 和 PermissionChecker。

此庫的 Gradle 構建腳本依賴關係標識符以下所示:

com.android.support:support-core-utils:24.2.0

v4 core-ui 庫

實現各類 UI 相關組件,例如 ViewPager、NestedScrollView 和 ExploreByTouchHelper。

此庫的 Gradle 構建腳本依賴關係標識符以下所示:

com.android.support:support-core-ui:24.2.0

v4 media-compat 庫

向後移植部分媒體框架,包括 MediaBrowser 和 MediaSession。

此庫的 Gradle 構建腳本依賴關係標識符以下所示:

com.android.support:support-media-compat:24.2.0

v4 fragment 庫

添加對使用片斷封裝用戶界面和功能的支持,從而使應用可以提供能夠在大屏幕設備與小屏幕設備之間進行調節的佈局。此模塊依賴於 compat、core-utils、core-ui 和 media-compat。

此庫的 Gradle 構建腳本依賴關係標識符以下所示:

com.android.support:support-fragment:24.2.0

Dalvik 可執行文件分包支持庫

此庫能夠爲使用多個 Dalvik Executable (DEX) 文件開發應用提供支持。引用超過 65536 個方法的應用須使用 Dalvik 可執行文件分包配置。如需瞭解有關使用 Dalvik 可執行文件分包的詳細信息,請參閱使用超過 6.4 萬種方法開發應用。

此庫的 Gradle 構建腳本依賴關係標識符以下所示:

com.android.support:multidex:1.0.0

v7 支持庫

一些庫旨在與 Android 2.3(API 級別 9)及更高版本搭配使用。這些庫提供了特定的功能集,而且能夠單獨添加到應用中,與其餘庫互不影響。

v7 appcompat 庫

此庫添加了對操做欄用戶界面設計模式的支持。此庫包含對 Material Design 用戶界面實現的支持。

注:此庫依賴於 v4 支持庫。

下面是 v7 appcompat 庫中包含的一些關鍵類:

  • ActionBar - 提供操做欄用戶界面模式的實現。如需瞭解有關使用操做欄的詳細信息,請參閱操做欄開發者指南。
  • AppCompatActivity - 添加一個應用 Activity 類,此類可做爲使用支持庫操做欄實現的 Activity 的基礎類。
  • AppCompatDialog - 添加一個對話框類,此類可做爲 AppCompat 主題對話框的基礎類。
  • ShareActionProvider - 包含對能夠添加到操做欄中的標準化分享操做(例如電子郵件或發帖至社交應用)的支持。

此庫的 Gradle 構建腳本依賴關係標識符以下所示:

com.android.support:appcompat-v7:24.2.0

v7 cardview 庫

此庫添加了對 CardView 小部件的支持,讓您可以在卡片內顯示信息,從而使應用具有一致的外觀。這些卡片對 Material Design 實現很是有用,並在電視應用佈局中廣爲使用。

此庫的 Gradle 構建腳本依賴關係標識符以下所示:

com.android.support:cardview-v7:24.2.0

v7 gridlayout 庫

下載 Android 支持庫後,此庫能夠添加對 GridLayout 類的支持,讓您可以使用網狀方格安排用戶界面元素。如需瞭解有關 v7 gridlayout 庫 API 的詳細信息,請參閱 API 參考中的 android.support.v7.widget 軟件包。

此庫的 Gradle 構建腳本依賴關係標識符以下所示:

com.android.support:gridlayout-v7:24.2.0

v7 mediarouter 庫

此庫能夠提供 MediaRouter、MediaRouteProvider 和支持 Google Cast 的相關媒體類。

通常而言,利用 v7 mediarouter 庫中的 API,您能夠控制當前設備到外部屏幕、揚聲器和其餘目標設備的媒體渠道和流的路由。此庫包含的 API 能夠用於發佈應用特定的媒體路由提供程序、發現和選擇目標設備,以及檢查媒體狀態,等等。如需瞭解有關 v7 mediarouter 庫 API 的詳細信息,請參閱 API 參考中的 android.support.v7.media 軟件包。

此庫的 Gradle 構建腳本依賴關係標識符以下所示:

com.android.support:mediarouter-v7:24.2.0

支持庫 r18 中引入的 v7 mediarouter 庫 API 在後續版本的支持庫中可能會發生更改。目前,咱們建議僅使用與 Google Cast 有關的庫。

v7 palette 庫

v7 palette 支持庫包含 Palette 類,此類讓您能夠從圖像中抽取突出顏色。例如,音樂應用可使用 Palette 對象從專輯封面抽取主要顏色,而後使用這些顏色建立一個色彩協調的歌曲標題卡。

此庫的 Gradle 構建腳本依賴關係標識符以下所示:

com.android.support:palette-v7:24.2.0

v7 recyclerview 庫

recyclerview 庫添加了 RecyclerView 類。此類可以爲 RecyclerView 小部件提供支持,RecyclerView 是一種經過提供有限的數據項窗口有效顯示大數據集的視圖。

此庫的 Gradle 構建腳本依賴關係標識符以下所示:

com.android.support:recyclerview-v7:24.2.0

v7 Preference 支持庫

首選項軟件包提供的 API 支持添加 preference 對象(例如 CheckBoxPreference 和 ListPreference),方便用戶修改 UI 設置。

v7 Preference 庫添加了對接口(例如 Preference.OnPreferenceChangeListener 和 Preference.OnPreferenceClickListener)以及類(例如 CheckBoxPreference 和 ListPreference)的支持。

此庫的 Gradle 構建腳本依賴關係標識符以下所示:

com.android.support:preference-v7:24.2.0

v8 支持庫

此庫旨在與 Android 2.3(API 級別 9)及更高版本搭配使用。此庫提供了特定的功能集,而且能夠單獨添加到應用中,與其餘庫互不影響。

v8 renderscript 庫 此庫旨在與 Android 2.3(API 級別 9)及更高版本搭配使用。它添加了對 RenderScript 計算框架的支持。android.support.v8.renderscript 軟件包中包含這些 API。請注意,在應用中添加這些 API 的步驟與添加其餘支持庫 API 迥然不一樣。如需瞭解有關在應用中使用這些 API 的詳細信息,請參閱 RenderScript 開發者指南。

注:Android Studio 和 Gradle 構建支持使用帶支持庫的 RenderScript。renderscript 庫位於 build-tools/$VERSION/renderscript/ 文件夾中。

如下示例顯示了此庫的 Gradle 構建腳本屬性:

defaultConfig {
    renderscriptTargetApi 18
    renderscriptSupportModeEnabled true
}

v13 支持庫

此庫旨在用於 Android 3.2(API 級別 13)及更高版本。它添加了對帶有 (FragmentCompat) 類和其餘片斷支持類的 Fragment 用戶界面模式的支持。如需瞭解有關片斷的詳細信息,請參閱片斷開發者指南。如需瞭解有關 v13 支持庫 API 的詳細信息,請參閱 API 參考中的 android.support.v13 軟件包。

此庫的 Gradle 構建腳本依賴關係標識符以下所示:

com.android.support:support-v13:24.2.0

v14 Preference 支持庫

android.support.v14.preference 軟件包提供的 API 添加了對首選項接口(例如 PreferenceFragment.OnPreferenceStartFragmentCallback 和 PreferenceFragment.OnPreferenceStartScreenCallback)以及類(例如 MultiSelectListPreference 和 PreferenceFragment)的支持。如需瞭解有關 v14 Preference 支持庫 API 的詳細信息,請參閱 API 參考中的首選項軟件包。

此庫的 Gradle 構建腳本依賴關係標識符以下所示:

com.android.support:preference-v14:24.2.0

適用於電視的 v17 Preference 支持庫

android.support.v17.preference 軟件包提供的 API 能夠在電視設備上提供首選項接口,包括對 LeanbackListPreferenceDialogFragment.ViewHolder.OnItemClickListener 接口和類的支持,例如 BaseLeanbackPreferenceFragment 和 LeanbackPreferenceFragment。如需瞭解有關 v17 Preference 支持庫 API 的詳細信息,請參閱 API 參考中的首選項軟件包。

此庫的 Gradle 構建腳本依賴關係標識符以下所示:

com.android.support:preference-leanback-v17:24.2.0

v17 Leanback 庫

android.support.v17.leanback 軟件包提供的 API 支持在電視設備上構建用戶界面。它爲電視應用提供了一些重要的小部件。一些值得注意的類包括:

BrowseFragment - 一種用於建立主要佈局的片斷,主要佈局用於瀏覽類別和媒體項目。 DetailsFragment - 用於 Leanback 細節屏幕的包裝器片斷。 PlaybackOverlayFragment - 用於顯示播放控件及相關內容的 DetailsFragment 子類。 SearchFragment - 用於處理搜索的片斷。片斷能夠接收用戶的搜索請求並將其傳遞給應用提供的 SearchResultProvider。SearchResultProvider 能夠將搜索結果返回給 SearchFragment,後者會將結果渲染到 RowsFragment 中。 此庫的 Gradle 構建腳本依賴關係標識符以下所示:

com.android.support:leanback-v17:24.2.0

註解支持庫

註解軟件包提供的 API 支持嚮應用中添加註解元數據。

此庫的 Gradle 構建腳本依賴關係標識符以下所示:

com.android.support:support-annotations:24.2.0

設計支持庫

設計軟件包提供的 API 支持嚮應用中添加 Material Design 組件和模式。

設計支持庫添加了對應用開發者依賴的各類 Material Design 組件和模式的支持,例如抽屜式導航欄、浮動操做按鈕 (FAB)、快捷信息欄和標籤頁。

此庫的 Gradle 構建腳本依賴關係標識符以下所示:

com.android.support:design:24.2.0

自定義標籤頁支持庫

自定義標籤頁軟件包提供的 API 支持嚮應用中添加自定義標籤頁並對其進行管理。

自定義標籤頁支持庫添加了對自定義標籤頁服務和自定義標籤頁回調等各類類的支持。

此庫的 Gradle 構建腳本依賴關係標識符以下所示:

com.android.support:customtabs:24.2.0

百分比支持庫

百分比軟件包提供的 API 支持嚮應用中添加基於百分比的尺寸並對其進行管理。

百分比支持庫添加了對 PercentLayoutHelper.PercentLayoutParams 接口和各類類的支持,例如 PercentFrameLayout 和 PercentRelativeLayout。

此庫的 Gradle 構建腳本依賴關係標識符以下所示:

com.android.support:percent:24.2.0

適用於電視的應用建議支持庫

應用建議軟件包提供的 API 支持向電視設備上運行的應用中添加內容建議。

應用庫添加了對註解(例如 ContentRecommendation.ContentMaturity 和各類類(例如 ContentRecommendation 和 RecommendationExtender)的支持。

此庫的 Gradle 構建腳本依賴關係標識符以下所示:

com.android.support:recommendation:24.2.0

參考

對本文有什麼建議(內容、寫做風格等),歡迎留言提出,感謝!

相關文章
相關標籤/搜索