關(guān)于v4/v7/v13包的應(yīng)用,android開(kāi)發(fā)人員常常搞不清楚具體應(yīng)用抑党,只知道是做向下兼容的包警,于是開(kāi)始了百度之旅,但是我發(fā)現(xiàn)底靠,百度上的博客或技術(shù)文章對(duì)這幾個(gè)包的解說(shuō)一開(kāi)片就錯(cuò)了害晦,比如很多文章說(shuō),v4包是兼容到android 1.6版本(api level = 4)使用暑中,v7包是兼容到android 2.1版本(api level =7)使用的壹瘟,這個(gè)記憶法到時(shí)不錯(cuò),v4對(duì)應(yīng)level4,v7對(duì)應(yīng)level7,但是查閱官方文檔后鳄逾,我才發(fā)覺(jué)“錯(cuò)誤”不止一點(diǎn)點(diǎn)稻轨,于是就沒(méi)在看那些千篇一律的博客文章了。
官方文檔是這樣解釋支持庫(kù)的:Android 支持庫(kù)提供了諸多未內(nèi)置于框架的功能雕凹。這些庫(kù)提供向后兼容版本的新功能殴俱、框架中未包含的實(shí)用 UI 元素,以及應(yīng)用可以利用的一系列實(shí)用程序枚抵。
概覽
許多情況下线欲,某項(xiàng)功能可能對(duì)應(yīng)用開(kāi)發(fā)者很有用,但是添加到 Android 框架卻并不合適汽摹。例如李丰,某個(gè)應(yīng)用可能僅需要用于特定用例的某項(xiàng)功能,如在不同版本的 Android 系統(tǒng)之間順暢切換逼泣。
為了解決這一問(wèn)題趴泌,Android SDK 添加了多個(gè)庫(kù),這些庫(kù)統(tǒng)稱(chēng)為 Android 支持庫(kù)圾旨。如果應(yīng)用開(kāi)發(fā)者想要在應(yīng)用中集成庫(kù)功能,他們可以添加其中任意一個(gè)庫(kù)魏蔗。
支持庫(kù)提供一系列不同的功能:
- 向后兼容版本的框架組件砍的。
- 用于實(shí)現(xiàn)建議的 Android 布局模式的 UI 元素。
- 支持不同的設(shè)備類(lèi)型莺治。
- 其他實(shí)用程序功能廓鞠。
具體文檔請(qǐng)查看:https://developer.android.com/topic/libraries/support-library/#backward
官方文檔這樣解釋v4包的:
v4 支持庫(kù)
這些庫(kù)旨在與 Android 2.3(API 級(jí)別 9)及更高版本搭配使用帚稠。與其他支持庫(kù)相比,它們包含的 API 集合最大床佳,包括對(duì)應(yīng)用組件滋早、用戶(hù)界面功能、輔助功能砌们、數(shù)據(jù)處理杆麸、網(wǎng)絡(luò)連接以及編程實(shí)用工具的支持。
如需了解有關(guān) v4 支持庫(kù)所提供類(lèi)和方法的完整詳細(xì)信息浪感,請(qǐng)參閱 API 參考中的 android.support.v4
軟件包昔头。
注:在支持庫(kù)修訂版 24.2.0 之前,存在一個(gè) v4 支持庫(kù)影兽。為了提高效率揭斧,此庫(kù)拆分成多個(gè)模塊。出于向后兼容的考慮峻堰,如果您在 Gradle 腳本中列出了 support-v4
讹开,您的 APK 將包含所有的 v4 模塊。不過(guò)捐名,要減少 APK 大小旦万,我們建議僅列出應(yīng)用需要的特定模塊。
通過(guò)閱讀官方文檔桐筏,我們知道纸型,首先兼容到的最低版本是2.3,并不是level=4的1.6版本梅忌。其次需要注意的是v4包在24.2.0的版本是一個(gè)分水嶺狰腌,在這個(gè)版本將以前的一整個(gè)v4包拆分了多個(gè)模塊,而不是明明只用得到一個(gè)模塊卻要編入整個(gè)v4包牧氮。
如:
v4 compat 庫(kù)
為眾多框架 API 提供兼容性包裝器琼腔,例如 Context.obtainDrawable() 和 View.performAccessibilityAction()。
此庫(kù)的 Gradle 構(gòu)建腳本依賴(lài)關(guān)系標(biāo)識(shí)符如下所示:
com.android.support:support-compat:24.2.0
所以依次有:
v4 core-utils 庫(kù)
提供大量實(shí)用程序類(lèi)踱葛,例如 AsyncTaskLoader
和 PermissionChecker
丹莲。
此庫(kù)的 Gradle 構(gòu)建腳本依賴(lài)關(guān)系標(biāo)識(shí)符如下所示:
com.android.support:support-core-utils:24.2.0
v4 core-ui 庫(kù)
實(shí)現(xiàn)各種 UI 相關(guān)組件,例如 ViewPager
尸诽、NestedScrollView
和 ExploreByTouchHelper
甥材。
此庫(kù)的 Gradle 構(gòu)建腳本依賴(lài)關(guān)系標(biāo)識(shí)符如下所示:
com.android.support:support-core-ui:24.2.0
v4 media-compat 庫(kù)
向后移植部分媒體框架,包括 MediaBrowser
和 MediaSession
性含。
此庫(kù)的 Gradle 構(gòu)建腳本依賴(lài)關(guān)系標(biāo)識(shí)符如下所示:
com.android.support:support-media-compat:24.2.0
v4 fragment 庫(kù)
添加對(duì)使用片段封裝用戶(hù)界面和功能的支持替废,從而使應(yīng)用能夠提供可以在大屏幕設(shè)備與小屏幕設(shè)備之間進(jìn)行調(diào)節(jié)的布局巢价。此模塊依賴(lài)于 compat折欠、core-utils、core-ui 和 media-compat芝发。
此庫(kù)的 Gradle 構(gòu)建腳本依賴(lài)關(guān)系標(biāo)識(shí)符如下所示:
com.android.support:support-fragment:24.2.0
v7 支持庫(kù)
一些庫(kù)旨在與 Android 2.3(API 級(jí)別 9)及更高版本搭配使用。這些庫(kù)提供了特定的功能集苛谷,并且可以單獨(dú)添加到應(yīng)用中辅鲸,與其他庫(kù)互不影響。
其中注意:
v7 appcompat 庫(kù)
此庫(kù)添加了對(duì)操作欄用戶(hù)界面設(shè)計(jì)模式的支持腹殿。此庫(kù)包含對(duì) Material Design 用戶(hù)界面實(shí)現(xiàn)的支持独悴。
注:此庫(kù)依賴(lài)于 v4 支持庫(kù)。