Android SDK中的Support兼容包詳解
背景
來自于知乎上邀請回答的一個問題Android中AppCompat和Holo的一個問題?, 看來很多人還是對這些兼容包搞不清楚,那么干脆寫篇博客吧.
Support Library
我們都知道Android一些SDK比較分裂,為此google官方提供了Android Support Library package 系列的包來保證高版本sdk開發(fā)的向下兼容性, 所以你可能經(jīng)??吹絭4,v7,v13這些數(shù)字,首先我們就來理清楚這些數(shù)字的含義,以及它們之間的區(qū)別。
support-v4
用在API lever 4(即Android 1.6)或者更高版本之上。它包含了相對更多的內(nèi)容,而且用的更為廣泛,例如:Fragment,NotificationCompat,LoadBroadcastManager,ViewPager,PageTabStrip,Loader,F(xiàn)ileProvider 等
Gradle引用方法:
compile 'com.android.support:support-v4:21.0.3'
support-v7
這個包是為了考慮API level 7(即Android 2.1)及以上版本而設(shè)計的,但是v7是要依賴v4這個包的,v7支持了Action Bar以及一些Theme的兼容。
Gradle引用方法:
compile 'com.android.support:appcompat-v7:21.0.3'
support-v13
這個包的設(shè)計是為了API level 13(即Android 3.2)及更高版本的,一般我們都不常用,平板開發(fā)中能用到,這里就不過多介紹了。
Theme
回到知乎上的這個問題,我們來介紹下各種Theme的概念。
Hoho Theme
在4.0之前Android可以說是沒有設(shè)計可言的,在4.0之后推出了Android Design,從此Android在設(shè)計上有了很大的改善,而在程序?qū)崿F(xiàn)上相應(yīng)的就是Holo風格,所以你看到有類似 Theme.Holo.Light、 Theme.Holo.Light.DarkActionBar 就是4.0的設(shè)計風格,但是為了讓4.0之前的版本也能有這種風格怎么辦呢?這個時候就不得不引用v7包了,所以對應(yīng)的就有 Theme.AppCompat.Light、 Theme.AppCompat.Light.DarkActionBar,如果你的程序最小支持的版本是4.0,那么可以不用考慮v7的兼容。
Material Design Theme
今年的5.0版本,Android推出了Material Design的概念,這是在設(shè)計上Android的又一大突破。對應(yīng)的程序?qū)崿F(xiàn)上就有 Theme.Material.Light、 Theme.Material.Light.DarkActionBar等,但是這種風格只能應(yīng)用在在5.0版本的手機,如果在5.0之前應(yīng)用Material Design該怎么辦呢?同樣的引用appcompat-v7包,這個時候的Theme.AppCompat.Light、 Theme.AppCompat.Light.DarkActionBar就是相對應(yīng)兼容的Material Design的Theme。
注意事項
gradle引用appcompat-v7包的時候就不需要引用v4了,因為v7里默認包含了v4包;
compile ‘com.android.support:appcompat-v7:21.0.3' 中的21代表API level 21推出的兼容包,所以如果你引用的是21之前的版本,則默認這些Theme.AppCompat.Light是Holo風格的,從21開始的版本默認是Material風格
使用appcompat之后,你的所有的Activity應(yīng)該繼承自ActionBarActivity,而ActionBarActivity繼承自FragmentActivity,所以放心的使用Fragment;
最后,相信已經(jīng)講的很清楚了,大家有問題可直接博客留言。如果英語好的,可直接移步官方最權(quán)威的解釋https://developer.android.com/tools/support-library/features.html
相關(guān)文章
Android用代碼獲取手機root之后的最高權(quán)限
機得root之后通過代碼可以獲得最高權(quán)限如果沒有root的話請不要往下看,毫無意義,root之后的朋友可以參考下本文或許有意想不到的收獲2013-03-03Android實現(xiàn)向Launcher添加快捷方式的方法
這篇文章主要介紹了Android實現(xiàn)向Launcher添加快捷方式的方法,涉及Android添加快捷方式的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-09-09Android Studio配置Kotlin開發(fā)環(huán)境詳細步驟
這篇文章主要介紹了Android Studio配置Kotlin開發(fā)環(huán)境詳細步驟的相關(guān)資料,需要的朋友可以參考下2017-05-05使用DrawerLayout組件實現(xiàn)側(cè)滑抽屜的功能
DrawerLayout組件同樣是V4包中的組件,也是直接繼承于ViewGroup類,所以說是一個容器類,下面通過本文給大家介紹使用DrawerLayout組件實現(xiàn)側(cè)滑抽屜的功能,感興趣的朋友一起看下吧2016-08-08