tags: android support library
Google官方開發(fā)者網站有一篇文章專門解釋了這一系列Support Library,網絡上的很多文章都翻譯自它。文章地址在這里。
下面是我自己的一些總結。
為什么要提供Support Library
最主要的原因就是:為了能在低版本的Android系統(tǒng)上使用高版本的SDK才具有的新功能、新特性。比如,Fragment,ActionBar、Material Design風格等。
Google把這些高版本SDK才具有的新特性打包進Support Library,當開發(fā)者想使用這些新特性,又需要兼容老版本Android系統(tǒng)時,就可以引入Support Library。當然,這些打包進Support Library的新特性,全部都被完整的包含在了最新的Android SDK中。所以如果開發(fā)者的App僅支持最新系統(tǒng),也可以不引入Support Library。
Google為了使開發(fā)者可以方便的引入Support Library,把它們做成了依賴包的形式,通過Gradle可以很方便的引入,例如:
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.android.support:design:23.3.0'
除了最主要的原因,還有其他幾點原因,可以參考Google官方文檔對此的解釋。
Support Library的分類
Android Support Library只是一個名稱,并不是一個真正的library,它由多個具體的library集合而成。每個單獨的library都包含一些新特性,可以支持不同版本的Android系統(tǒng),可以被單獨引入。
一般來說,每個Support Library包含的新特性都是不同的,它們交叉互補,以插件化的形式提供對低版本系統(tǒng)的支持。
1. V4 Support Library
支持Android 1.6(API level 4)及以上。它包含了最多的新特性,典型的有:
- Fragment
- VIewPager
- DrawerLayout
- SlidingPaneLayout
引入:
compile 'com.android.support:support-v4:24.1.1'
2. v7 Support Libraries
支持Android 2.1(API level 7)及以上。由一系列獨立的v7包組成,可以分別引入。
2.1 v7 appcompat library
依賴v4 Support Library?,F在在Android Studio中新建一個工程,默認就會引入這個library。而它又依賴v4 Support Library,所以v4 Support Library也會被默認引入工程。
這個庫主要的作用就是提供對Action Bar的支持。
使用:
compile 'com.android.support:appcompat-v7:24.1.1'
2.2 v7 cardview library
提供了CardView控件,一種Material Design風格的卡片形控件。
使用:
com.android.support:cardview-v7:24.1.1
2.3 v7 gridlayout library
提供了GridLayout類,一種網格布局控件,與LinearLayout,RelativeLayout同級。
使用:
com.android.support:gridlayout-v7:24.1.1
2.4 v7 mediarouter library
官方文檔的解釋是:用來控制多媒體流的分發(fā)。但是實際中基本很少用到,有興趣的可以參考官方文檔。
2.5 v7 palette library
提供了Palete類,可以從一張圖片中提取出它的主色調。
使用:
com.android.support:palette-v7:24.1.1
2.6 v7 recyclerview library
提供了RecyclerView類,一個類似ListView,但是比ListVIew性能更好的控件。一般用來展示大量數據,可以完全替代ListView。
使用:
com.android.support:recyclerview-v7:24.1.1
2.7 v7 Preference Support Library
提供了一系列API,用于支持創(chuàng)建Material Design風格的首選項頁面。官方有一篇指導文檔,但是感覺雖然方便了開發(fā),但是靈活性和可定制性不高。
使用:
com.android.support:preference-v7:24.1.1
3. Design Support Library
它是Android官方用來方便開發(fā)者在應用中實現Android Material Design風格的UI而提供的支持庫,里面有很多Android官方提供的Material Design風格的輪子。主要的輪子有:
- AppBarLayout
- BottomSheetDialogFragment
- CollapsingToolbarLayout
- CoordinatorLayout
- FloatingActionButton
- NavigationView
- Snackbar
- TabLayout
- TextInputLayout
- TextInputEditText
Google開發(fā)者博客上還有一個視頻,專門介紹了這個庫。
使用:
com.android.support:design:24.1.1
4. Multidex Support Library
提供支持多個dex文件的功能,解決方法65536的限制。
使用:
com.android.support:multidex:1.0.0
5. v8 Support Library
支持Android 2.2(API level 8)及以上。
5.1 v8 renderscript library
感覺一般的應用級開發(fā)用不到(也可能是我太弱雞了),具體還是參考官方文檔吧。
6. v13 Support Library
支持Android 3.2(API level 13)及以上。這個library是為在平板上使用Fragment而設計的,現在應該幾乎用不到了。
使用:
com.android.support:support-v13:24.1.1
7. v14 Preference Support Library
主要是添加了首選項Fragment類-PreferenceFragment和首選項接口-PreferenceFragment.OnPreferenceDisplayDialogCallback,PreferenceFragment.OnPreferenceStartFragmentCallback,PreferenceFragment.OnPreferenceStartScreenCallback。與v7 Preference Support Library搭配使用,參見官方文檔。
使用:
com.android.support:preference-v14:24.1.1
8. Annotations Support Library
提供對注解的支持。
使用:
com.android.support:support-annotations:24.1.1
9. Custom Tabs Support Library
提供了一些API,用于添加和管理自定義tab。
使用:
com.android.support:customtabs:24.1.1
10. Percent Support Library
添加了百分比布局控件,如PercentFrameLayout,PercentRelativeLayout。
使用:
com.android.support:percent:24.1.1
11. v17 Preference Support Library for TV
提供了在電視平臺上,構建首選項頁面的接口,作用類似于v7 Preference Support Library與v14 Preference Support Library。
使用:
com.android.support:preference-leanback-v17:24.1.1
12. v17 Leanback Library
提供了在電視平臺上,用于構建用戶界面的一系列重要控件。以下是一些關鍵的類:
使用:
com.android.support:leanback-v17:24.1.1
13. App Recommendation Support Library for TV
在電視平臺上,添加了用于做內容推薦的一系列API。
使用:
com.android.support:recommendation:24.1.1