Android Support v4,v7,v13的區(qū)別以及 v4,v7包沖突問題

關(guān)于v4/v7/v13包的應(yīng)用,android開發(fā)人員常常搞不清楚具體應(yīng)用,只知道是做向下兼容的,于是開始了百度之旅,但是我發(fā)現(xiàn),百度上的博客或技術(shù)文章對這幾個包的解說一開片就錯了,比如很多文章說,v4包是兼容到android 1.6版本(api level = 4)使用,v7包是兼容到android 2.1版本(api level =7)使用的,這個記憶法到時不錯,v4對應(yīng)level4,v7對應(yīng)level7,但是查閱官方文檔后,我才發(fā)覺“錯誤”不止一點(diǎn)點(diǎn),于是就沒在看那些千篇一律的博客文章了。
官方文檔是這樣解釋支持庫的:Android 支持庫提供了諸多未內(nèi)置于框架的功能。這些庫提供向后兼容版本的新功能、框架中未包含的實用 UI 元素,以及應(yīng)用可以利用的一系列實用程序。

概覽

許多情況下,某項功能可能對應(yīng)用開發(fā)者很有用,但是添加到 Android 框架卻并不合適。例如,某個應(yīng)用可能僅需要用于特定用例的某項功能,如在不同版本的 Android 系統(tǒng)之間順暢切換。

為了解決這一問題,Android SDK 添加了多個庫,這些庫統(tǒng)稱為 Android 支持庫。如果應(yīng)用開發(fā)者想要在應(yīng)用中集成庫功能,他們可以添加其中任意一個庫。

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

具體文檔請查看:https://developer.android.com/topic/libraries/support-library/#backward

官方文檔這樣解釋v4包的:

v4 支持庫

這些庫旨在與 Android 2.3(API 級別 9)及更高版本搭配使用。與其他支持庫相比,它們包含的 API 集合最大,包括對應(yīng)用組件、用戶界面功能、輔助功能、數(shù)據(jù)處理、網(wǎng)絡(luò)連接以及編程實用工具的支持。
如需了解有關(guān) v4 支持庫所提供類和方法的完整詳細(xì)信息,請參閱 API 參考中的 android.support.v4
軟件包。
:在支持庫修訂版 24.2.0 之前,存在一個 v4 支持庫。為了提高效率,此庫拆分成多個模塊。出于向后兼容的考慮,如果您在 Gradle 腳本中列出了 support-v4
,您的 APK 將包含所有的 v4 模塊。不過,要減少 APK 大小,我們建議僅列出應(yīng)用需要的特定模塊。

通過閱讀官方文檔,我們知道,首先兼容到的最低版本是2.3,并不是level=4的1.6版本。其次需要注意的是v4包在24.2.0的版本是一個分水嶺,在這個版本將以前的一整個v4包拆分了多個模塊,而不是明明只用得到一個模塊卻要編入整個v4包。
如:

v4 compat 庫

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

此庫的 Gradle 構(gòu)建腳本依賴關(guān)系標(biāo)識符如下所示:
com.android.support:support-compat:24.2.0

所以依次有:

v4 core-utils 庫

提供大量實用程序類,例如 AsyncTaskLoader
PermissionChecker
。
此庫的 Gradle 構(gòu)建腳本依賴關(guān)系標(biāo)識符如下所示:
com.android.support:support-core-utils:24.2.0

v4 core-ui 庫

實現(xiàn)各種 UI 相關(guān)組件,例如 ViewPager
、NestedScrollView
ExploreByTouchHelper
。
此庫的 Gradle 構(gòu)建腳本依賴關(guān)系標(biāo)識符如下所示:
com.android.support:support-core-ui:24.2.0

v4 media-compat 庫

向后移植部分媒體框架,包括 MediaBrowser
MediaSession
。
此庫的 Gradle 構(gòu)建腳本依賴關(guān)系標(biāo)識符如下所示:
com.android.support:support-media-compat:24.2.0

v4 fragment 庫

添加對使用片段封裝用戶界面和功能的支持,從而使應(yīng)用能夠提供可以在大屏幕設(shè)備與小屏幕設(shè)備之間進(jìn)行調(diào)節(jié)的布局。此模塊依賴于 compatcore-utils、core-uimedia-compat
此庫的 Gradle 構(gòu)建腳本依賴關(guān)系標(biāo)識符如下所示:
com.android.support:support-fragment:24.2.0

v7 支持庫

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

其中注意:

v7 appcompat 庫

此庫添加了對操作欄用戶界面設(shè)計模式的支持。此庫包含對 Material Design 用戶界面實現(xiàn)的支持。
:此庫依賴于 v4 支持庫。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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