張明雲 · 1 個月前html
一個Android工程一般包括主工程和依賴包,依賴包又有兩種形式:android
爲了程序可以編譯經過和在設備中正常運行,主工程除了依賴第三方的工程和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
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/」文件夾下查看。異步
V4 Support Libraryide
  這個包的名字是:「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的介紹:佈局
關於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包,經過這個包能夠實現百分比佈局。