Android Support Library介紹

Android Support Library介紹

張明雲 · 1 個月前html

主工程、依賴包、jar包、android.jar、Android Support Library的關係

一個Android工程一般包括主工程和依賴包,依賴包又有兩種形式:android

  • 一種是單獨的工程:在主工程中的配置文件指明主工程和依賴包的依賴關係以後,就能夠在主工程中正常使用依賴包的類和接口了,這種適合於依賴包中有圖片資源、so等不方便打包到jar包中的狀況,好比Nine Old AndroidsPullToRefreshFancyCoverFlow等。
  • 另外一種是jar包:放在主工程的libs文件夾下,這種一般是依賴包中只有代碼和能夠打包到jar包中的文件,好比Fastjson.jarVolley.jarGson.jar等。

爲了程序可以編譯經過和在設備中正常運行,主工程除了依賴第三方的工程和jar包以外,還須要依賴安卓系統自己的代碼,也就是咱們在sdk的每一個版本中看到的android.jar,這裏面集成了android的全部API,隨着android sdk的升級,高版本的sdk中會增長不少新的API,好比ActionBar、Fragment、RecyclerView等,若是在低版本的sdk中須要使用高版本新增的API怎麼辦?不可能去更新移動設備中的android.jar吧,由於硬件設備集成的sdk版本是固定的,android.jar也是固定的,設備中的一些參數、硬件選型也是根據當前sdk版原本定的,因此最好的方式是將新增的API以依賴包的形式集成到須要使用高版本API的應用程序中。git

谷歌早已經考慮到了這個問題,因此推出了一系列脫離於android.jar的依賴包,好比常見的android-support-v4.jar、appcompat-v7等。這些依賴包能夠直接集成到應用程序中,依賴包有的是jar包,有的是獨立的工程。命名的以下:github

  • jar包

android-support-v[API Level Value].jar,好比android-support-v4.jar、android-support-v13.jar。json

  • 依賴工程

[support包功能]_v[API Level Value],好比appcompat_v七、gridlayout_v7。app

各個依賴包能夠在「<sdk>/extras/android/support/」文件夾下查看。異步

各個版本的Android Support Library介紹

V4 Support Libraryide

&emsp;&emsp;這個包的名字是:「android-support-v4.jar」,是爲Android 1.6(API版本爲4)及以上的版本設計的,它包含大部分高版本中有而低版本中沒有的API,包括application components、user interface features、accessibility、data handling、network connectivity、and programming utilities,下面是對V4中的一些關鍵API的介紹:佈局

  • App Components:

Fragment:一個專爲解決Android碎片化的類,經過它可讓同一個程序適配不一樣的屏幕。
NotificationCompat:支持更豐富的通知形式;
LocalBroadcastManager:適合於應用內的消息傳遞。
  • User Interface:
ViewPager:一個能夠管理子view的viewgroup,用戶能夠在各個view之間自由切換,這個在不少應用中都有使用到;
PagerTitleStrip:一個關於當前頁面、上一個頁面和下一個頁面的一個非交互的指示器。它常常做爲ViewPager控件的一個子控件被被添加在XML佈局文件中。
PagerTabStrip:一個關於當前頁面、上一個頁面和下一個頁面的一個可交互的指示器。它常常做爲ViewPager控件的一個子控件被被添加在XML佈局文件中。
DrawerLayout:抽屜
SlidingPaneLayout:用於實現兩列面板的切換,在UI最上層的使用提供了一個水平的,多個面板的佈局。左邊的面板能夠看做是一個內容列表或者是瀏覽,右邊的面板的任務是顯示詳細的內容。
  • Accessibility:
ExploreByTouchHelper:幫助自定義View實現accessibility的幫助類;
AccessibilityEventCompat、AccessibilityNodeInfoCompat、AccessibilityNodeProviderCompat、AccessibilityDelegateCompat:Accessibility的適配類
  • Content:
Loader:異步加載數據;
FileProvider:應用間的私有文件共享。

關於V4的更多API介紹能夠參見:android-support-v4.jar API Referencesui

Multidex Support Library

該support包用於使用多dex技術編譯APP,當一個應用的方法數超過65536個時須要使用multidex配置,關於multidex的更多信息,能夠參見如何編譯超過65K方法數的應用

v7 SupportLibraries

針對Android 2.1(API Level 7)及以上的版本谷歌提供了一系列的support包,這些support包各自對應着特定的功能,每個均可以單獨地被引用。

v7 appcompat library
這個包的主要做用是爲了在低版本實現Android的Holo風格界面而引入的,主要包括ActionBar、AppCompat等類和主題,它是一個依賴工程而不是jar包。
注意:這個包須要依賴android-support-v4.jar,若是你使用的是Eclipse或者Ant編譯你的APP,確保你在使用這個依賴包時集成了android-support-v4.jar這個jar包。
v7 cardview library
一個在Android 5.0才被引入的卡片佈局support包。
v7 gridlayout library
一個支持網格佈局的support包。
v7 mediarouter library
一個用於設備間音頻、視頻交換顯示的support包。
v7 palette library
一個能夠實現頁面的顏色動態變換的support包,Palette是這個support包的核心類。
v7 recyclerview library
核心類是RecyclerView,用於替換ListView、GridView等須要依賴Adapter的View,具體能夠查閱RecyclerView方面的資料。
v7 Preference Support Library
一個用於支持各類控件存儲配置數據的support包。
v8 renderscript library
一個用於渲染腳本的support包。
v13 Support Library
這個包的做用主要是爲Android3.2(API Level 13)及以上的系統提供更多地Framgnet特性支持,使用它的緣由在於,android-support-v4.jar中雖然也對Fragment作了支持,因爲要兼容低版本,致使他是自行實現的 Fragment 效果,在高版本的 Fragment 的一些特性丟失了,而對於 v13以上的 sdk 版本,咱們可使用更加有效,特性更多的代碼。

v17 Leanback Library
一個主要做用是用於支持電視設備的support包,爲電視設備提供了不少組件,好比:BroweFragment、DetailsFragment、PlaybackOverlayFragment、SearchFragment等。
Annotations Support Library
一個支持註解的support包。
Design Support Library
一個用於支持Design Patterns的support包。
Custom Tabs Support Library
一個提供了在應用中添加和管理custom tabs的support包。
Percent Support Library
一個提供了百分比佈局的support包,經過這個包能夠實現百分比佈局。

在主工程中查看support包的源碼

對於原本就是工程的support包來講,在主工程中查閱該support包中的代碼很是簡單,但若是support包是jar包,則須要在主工程中手動配置才能在主工程中查看support包的源碼,關於在IDE中如何查看support jar包的源碼能夠參見: Android 如何在Eclipse中查看Android API源碼以及support包源碼

參考資料

相關文章
相關標籤/搜索