1. 程式人生 > >Android-support-v4 v7 v8 v13 v17 的區別和特性說明

Android-support-v4 v7 v8 v13 v17 的區別和特性說明

前言

隨著 Android 5.0 Lollipop 的釋出,Android 又為我們提供了更多的支援包,但是我相信大部分開發者都同我之前一樣不知道這些包裡究竟有些什麼東西,我們應該在什麼時候使用它。現在,我們就來逐個看看每一個版本的 Support 包中所擁有的東西,讓用到他的時候不再迷茫。

首先,你需要了解每一個 Support 包版本字尾 vX 所代表的含義。當然我相信來看部落格的諸位都一定知道 Android 對於每一個版本都有一個版本號,例如2.1是7,4.0是14,5.0是21。而這裡,v 之後的數字,就代表著他能夠被使用的最低版本等級,之所以無法在更低版本進行使用的原因,是因為隨著版本的升級,在新版本中有很多之前不支援的特性或者 API,因此如果你在老版本中使用了這些支援包,就可能會導致應用崩潰。

一、區別

google提供了Android Support Library package 系列的包來保證來高版本sdk開發的向下相容性,即我們用4.x開發時,在1.6等版本上,可以使用高版本的有些特性,如Fragement,ViewPager等,下面,簡單說明下這幾個版本間的區別:

Android Support v4:  這個包是為了照顧1.6及更高版本而設計的,這個包是使用最廣泛的,eclipse新建工程時,都預設帶有了。

Android Support v7:  這個包是為了考慮照顧2.1及以上版本而設計的,但不包含更低,故如果不考慮1.6,我們可以採用再加上這個包,另外注意,v7是要依賴v4這個包的,即,兩個得同時被包含。

Android Support v13:這個包的設計是為了android 3.2及更高版本的,一般我們都不常用,平板開發中能用到。

二、特性說明

Android Support v4支援庫 support-v4包算是Android對低等級的支援包。v4代表它最低支援Android1.6(API Level 4),在support-v4包中,它所擁有的類有很多,主要包含了對應用元件的支援,使用者互動體驗的一些工具類,一些資料網路方面的工具類。 1、系統應用元件 ①、Fragment -增加了對使用者介面和功能與片段的封裝支援,使應用程式能夠提供小型和大螢幕裝置之間的調整佈局(
Fragment是直到Android3.0才正式進入Android框架體系的,但是Android為了低版本的相容,因此在低版本也適配了Fragment框架)。
②、NotificationCompat -新增豐富的通知功能的支援。 ③、LocalBroadcastManager -允許應用程式輕鬆註冊,並在一個單一的應用程式接收的意圖,而不在全球播放它們(用於本地廣播通知)。 2、使用者介面互動 ①、ViewPager -新增 的ViewGroup,管理佈局為孩子的意見,這對使用者之間可以刷卡(介面間的滑動互動)。 ②、PagerTitleStrip -增加一個非互動標題條,可以被新增作為一個子 ViewPager。 ③、PagerTabStrip -增加一個導航部件分頁檢視之間進行切換,即也可以與使用 ViewPager。 ④、DrawerLayout -用於建立新增支援導航抽屜,可以從一個視窗的邊緣被拉到中(側滑欄的實現)。 ⑤、SlidingPaneLayout -用於建立連結的摘要和詳細檢視,適當地適應各種螢幕尺寸新增小部件(也是側滑欄的實現,和DrawerLayout不同的是,DrawerLayout側滑欄出來的時候,預設是覆蓋在當前頁面上,而SildingPaneLayout則是會將當前頁面移走)。 3、可訪問性 ①、ExploreByTouchHelper -增加了一個輔助類實現了自定義檢視可訪問性支援(幫助自定義View實現Accessibility的工具類)。 ②、AccessibilityEventCompat -為增加支援 AccessibilityEvent。有關實現可訪問性的更多資訊,請參閱輔助功能。 ③、AccessibilityNodeInfoCompat -為增加支援AccessibilityNodeInfo。 ④、AccessibilityNodeProviderCompat -為增加支援AccessibilityNodeProvider。 ⑤、AccessibilityDelegateCompat -為增加支援 View.AccessibilityDelegate。 內容 4、資料訪問幫助類 ①、Loader -增加了對資料的非同步載入的支援。該庫還提供了此類的具體實現,包括 CursorLoader和AsyncTaskLoader。 ②、FileProvider -新增應用程式之間共享私人檔案的支援。 有包括在這個庫中許多其他的API。有關V4支援庫API的完整,詳細的資訊,請參閱android.support.v4包中的API參考。 該庫位於<SDK> /extras/android/support/v4/目錄中下載Android支援庫後。該庫中不包含使用者介面資源。把它列入你的應用程式專案,然後按照說明新增庫沒有資源。 這圖書館的搖籃構建指令碼依賴識別符號如下: com.android.support:support-v4:21.0.0+ 這種依賴性符號指定發行版本21.0.0或更高版本。 Multidex支援庫 該庫提供了多的Dalvik可執行檔案(DEX)檔案構建應用程式的支援。引用超過65536方法的應用程式都需要使用multidex配置。有關使用multidex的詳細資訊,請參閱構建應用程式與在65K方法。 該庫位於<SDK>/extras/android/support/multidex/目錄中下載Android支援庫後。該庫中不包含使用者介面資源。把它列入你的應用程式專案,然後按照說明新增庫沒有資源 這圖書館的搖籃構建指令碼依賴識別符號如下: com.android.support:multidex:1.0.0+ 這種依賴性符號指定發行版本1.0.0或更高版本。 Android Support v7支援庫 有設計成與Android 2.1(API 7級)和較高的使用幾個庫。這些圖書館提供特定的功能集,並可以包含在獨立的應用程式彼此。 (1)、v7 appcompat庫 這個庫增加了對support action bar的使用者介面設計模式。該庫包括support material design的使用者介面實現(這個包的主要作用是為了在低版本實現 Android 的 Holo 風格介面而引入的,與之類似的有一個開源專案叫做 SherlockActionbar)。 注意: 這個庫依賴於V4支援庫。如果您在使用Ant或者Eclipse,請確保您包括V4支援庫,因為這個庫的類路徑中的一部分。 這裡有幾個關鍵的類包含在V7 appcompat庫: ①、ActionAar -提供的操作欄的實現 使用者介面模式。有關使用操作欄的詳細資訊,請參閱 操作欄開發人員指南。 ②、ActionBarActivity -新增時必須使用作為活動使用的支援庫操作欄實現基類的應用程式活動課。 ③、ShareActionProvider -一個標準化的分享動作(如電子郵件,或張貼到社交應用),可以包含在動作條上增加了支援。 該庫位於<SDK> /extras/android/support/v7/appcompat/ 目錄中下載Android支援庫後。該庫包含使用者介面資源。把它列入你的應用程式專案,然後按照說明 新增庫的資源。 這圖書館的搖籃構建指令碼依賴識別符號如下: com.android.support:appcompat-v7:21.0.0+ 這種依賴性符號指定發行版本21.0.0或更高版本。 (2)、v7 cardview庫 這個庫增加了對支援CardView 控制元件,它可以讓你證明這裡面有一個一致的外觀上的任何應用程式卡的資訊。這些卡是材料設計的實現是有用的,並且被廣泛用於佈局的電視應用程式(卡片佈局是最近在Android5.0釋出的時候才引入的新包,主要效果是讓應用進行卡片化顯示)。 該庫位於 <SDK> /axtras/android/support/v7/cardview/目錄中下載Android支援庫後。該庫包含使用者介面資源。把它列入你的應用程式專案,然後按照說明新增庫的資源 這圖書館的搖籃構建指令碼依賴識別符號如下: com.android.support:cardview-v7:21.0.0+ 這種依賴性符號指定發行版本21.0.0或更高版本。 (3)、v7 GridLayout的Library 這個庫增加了對支援GridLayout的類,它允許你安排使用矩形單元的網格使用者介面元素。有關V7 GridLayout的庫API的詳細資訊,請參閱 android.support.v7.widget包中的API參考。 該庫位於<SDK> /extras/android/support/v7/GridLayout/目錄中下載Android支援庫後。該庫包含使用者介面資源。把它列入你的應用程式專案,然後按照說明新增庫的資源。 這圖書館的搖籃構建指令碼依賴識別符號如下: com.android.support:gridlayout-v7:21.0.0+ 這種依賴性符號指定發行版本21.0.0或更高版本。 (4)、v7 mediarouter庫 該庫提供MediaRouter,MediaRouteProvider,以及相關的媒體類,支援 GoogleCast(主要用於進行裝置間的音訊,視訊交換顯示 在一般情況下,在第7版mediarouter庫中的API提供的控制的媒體通道的路由的一種方法,並從當前裝置到外部螢幕,揚聲器,和其他的目的裝置流。該庫包含的API用 於釋出應用程式特定的媒體路由提供商,為發現和選擇目標裝置,用於檢查介質的狀態,等等。有關V7 mediarouter庫API的詳細資訊,請參閱android.support.v7.media包中的API參考。 mediarouter庫位於該V7 <SDK> /extras/android/support/v7/mediarouter/目錄中下載Android支援庫後。它作為一個庫專案,在V7 appcompat庫的依賴性,所以你需要設置,當你的專案,包括圖書館在構建路徑。有關如何設定你的專案的更多資訊,請按照說明新增庫的資源。如果您正在開發在Eclipse / ADT,請務必同時包含Android的support-v7-mediarouter.jar和 Android的support-v7-appcompat.jar檔案。 如果您使用的是Android Studio,所有你需要做的是指定的搖籃構建指令碼的依賴識別符號com.android.support:support-v7-mediarouter:<修訂>,其中“<修訂>”是最低版本在該圖書館是可用的。例如: com.android.support:mediarouter-v7:21.0.0+ 在支援庫R18推出的V7 mediarouter庫API都受到了支援庫的更新版本改變。這時,我們建議您使用該庫僅在連線GoogleCast (5)、v7 Palette庫 在v7 Palette支援庫包括Panel類,它可以讓你從影象中提取突出的顏色。例如,一個音樂應用程式可以使用一個 調色盤物件從專輯封面中提取的主要顏色,並用這些顏色來打造一個色彩協調的歌名卡(這個包也是最新出來的,他的作用是幫助 Android 實現他的 MaterialDesign,讓你的 Actionbar 能夠根據介面進行對應的顏色改變)。 該庫位於 <SDK> /extras/android/support/v7/Palette/目錄中下載Android支援庫後。該庫中不包含使用者介面資源。把它列入你的應用程式專案,然後按照說明 新增庫沒有資源。 這圖書館的搖籃構建指令碼依賴識別符號如下: com.android.support:Palette-v7:21.0.0+ 這種依賴性符號指定發行版本21.0.0或更高版本。 (6)、v7 recyclerview庫 該recyclerview庫新增RecyclerView 類。該類提供用於支援 RecyclerView外掛,用於通過提供的資料項的有限視窗有效地顯示大量資料集的圖(這個包同樣也是剛出來的,他的作用是替換 ListView 和 GridView,但是可惜是沒有實現 OnItemClick 這些介面,你需要自己處理它)。 該庫位於 <SDK> /extras/android/support/v7/recyclerview/目錄中下載Android支援庫後。該庫包含使用者介面資源。把它列入你的應用程式專案,然後按照說明新增庫的資源。 這圖書館的搖籃構建指令碼依賴識別符號如下: com.android.support:recyclerview-v7:21.0.0+ 這種依賴性符號指定發行版本21.0.0或更高版本。 Android Support v8支援庫 這個庫被設計成與Android(API等級8)和較高的使用。它增加了對支援RenderScript計算框架。這些API包括在android.support.v8.renderscript包。你應該知道的步驟,包括這些API在應用程式中是非常不同的其他的支援庫API。有關在應用程式中使用這些API的更多資訊,請參閱 RenderScript 開發人員指南。 注:使用RenderScript與支援庫支援與Android的Eclipse外掛和Ant構建工具。它是目前不採用Android Studio或支援的搖籃-基於構建。 Android Support v13支援庫 這個庫是設計用來為Android 3.2(API級別13)和更高。它增加了對支援片段的(使用者介面模式FragmentCompat)類和附加片段支援類。有關片段的詳細資訊,請參閱 Fragment開發人員指南。有關V13支援庫API的詳細資訊,請參閱android.support.v13包中的API參考。 該庫位於<SDK> /extras/android/support/v13/目錄中下載Android支援庫後。該庫中不包含使用者介面資源。把它列入你的應用程式專案,然後按照說明 新增庫沒有資源。 這圖書館的搖籃構建指令碼依賴識別符號如下: com.android.support:support-v13:18.0.0+ 這種依賴性符號指定發行版本18.0.0或更高版本。 Android Support v17庫 該android.support.v17.leanback包提供的API來支援建築物的使用者介面在電視上的裝置。它提供了許多重要的視窗小部件用於電視的應用程式。一些著名的類包括: ①、BrowseFragment -的片段,用於建立一個主佈局為瀏覽類別和行的媒體專案。 ②、DetailsFragment -一個包裝片段Leanback的細節畫面。 ③、PlaybackOverlayFragment -的一個子類DetailsFragment用於顯示播放控制及相關內容。 ④、SearchFragment -一個片段來處理搜尋。片段接收到使用者的搜尋請求,並把它傳遞給應用程式提供的SearchResultProvider。該SearchResultProvider返回搜尋結果給SearchFragment,這使得它們成為一個RowsFragment。 該庫位於 <SDK> /extras/android/support/v17/Leanback的目錄中下載Android的支援庫後。有關如何設定你的專案的更多資訊,請按照說明新增庫的資源 這圖書館的搖籃構建指令碼依賴識別符號如下: com.android.support:leanback-v17:21.0.0+ 這種依賴性符號指定發行版本21.0.0或更高版本。

參考:

http://www.xiaoyunduo.org/article/235/

https://my.oschina.net/chengliqun/blog/148451

http://blog.csdn.net/tanranran/article/details/41010187