Android版本和兼容情況

1.compileSdkVersion, targetSdkVersion, minSdkVersion, buildToolsVersion

minSdkVersion :很好理解,就是你的程序支持在哪個(gè)最低版本的額Android上跑
buildToolsVersion:使用哪個(gè)版本的build工具,一般build版本會(huì)隨著android版本的發(fā)布而發(fā)布,所以一般選取最新的sdk版本就行
targetSdkVersion :目標(biāo)SDK,一般在這個(gè)sdk中的android手機(jī)最穩(wěn)定,可以選擇目前使用最多的手機(jī)SDK
compileSdkVersion:這是最重要的,也是最難選擇的,選擇什么版本就需要用什么版本的sdk源碼去編譯,另外support的版本要和這個(gè)版本一致,不然會(huì)出錯(cuò)。

2、support包

程序員往往有這種困擾,在開(kāi)發(fā)一個(gè)android程序時(shí),是使用舊版本的API還是新版本的額API,如果使用舊版本,新版本上的新特性和性能優(yōu)化就用不到了,多浪費(fèi)。如果使用新版本API,那么舊機(jī)器怎么辦?只能寫(xiě)兩套代碼,每次請(qǐng)求的時(shí)候先判斷下系統(tǒng)版本,新版本則運(yùn)行新API,舊版本則運(yùn)行舊API,很累有木有。
這個(gè)時(shí)候就是Support包出場(chǎng)的時(shí)候了,在一些關(guān)鍵更新API中,support包中都會(huì)擴(kuò)展這些API使得它們?cè)诘桶姹緑ersion也能使用,即避免寫(xiě)兩套代碼,又能夠最大化的利用起新API的性能特點(diǎn)。就是苦了Google的程序員了,不過(guò)為了讓更多的開(kāi)發(fā)遷移到新版本API,也是值得的。
support包有v4,v7,v13,推出這些包的作用是讓開(kāi)發(fā)者能夠在低版本上運(yùn)行高版本的一些特性,并不是說(shuō)低版本加上這些包就是高版本的系統(tǒng)了,這些包只是在一些低版本的系統(tǒng)中擴(kuò)展一些高版本擁有的類(lèi)庫(kù),讓這些類(lèi)庫(kù)能夠順利同低版本的API進(jìn)行轉(zhuǎn)換,從而能夠順利運(yùn)行在低版本上面,避免了程序員的困擾。
V4包是兼容android1.6及之后的包,v7是兼容andorid 2.1及之后的包,V13是兼容Android 3.2及之后的包,V7包里面是含有V4包的,V13是為了平板開(kāi)發(fā),基本已經(jīng)廢棄。

綜上所述:一般在開(kāi)發(fā)應(yīng)用時(shí)采用V7包,增加兼容性。比如:

compile 'com.android.support:appcompat-v7:22.+'
compile 'com.android.support:recyclerview-v7:22.+'

3、android版本

android有三種版本信息,一種是發(fā)布給公眾的,即android2.2,android4.4等,一種是代號(hào),比如 Android Cupcake,Sandwich,Jelly Bean等等,一種是開(kāi)發(fā)版本號(hào),如 15,16,23,25等等,這雖然是三種信息,但是基本是一一對(duì)應(yīng)的,對(duì)于開(kāi)發(fā)者來(lái)說(shuō)只需要關(guān)注開(kāi)發(fā)版本號(hào)就行,大概知道版本號(hào)的市場(chǎng)占有率,下面是google的官方數(shù)據(jù):
各個(gè)版本的詳細(xì)信息

Version Codename API Distribution
2.2 Froyo 8 0.1%
2.3.3 -2.3.7 Gingerbread 10 1.7%
4.0.3 -4.0.4 Ice Cream Sandwich 15 1.6%
4.1.x Jelly Bean 16 6.0%
4.2.x Jelly Bean 17 8.3%
4.3 Jelly Bean 18 2.4%
4.4 KitKat 19 29.2%
5.0 Lollipop 21 14.1%
5.1 Lollipop 22 21.4%
6.0 Marshmallow 23 15.2%

鑒于Google在android4.0中進(jìn)行了大量的更新,因此如果對(duì)市場(chǎng)客戶(hù)不是非??量痰那闆r下,選擇minsdk為15或者以上將會(huì)增加一些系統(tǒng)性能。如果不能放棄這1.8%的客戶(hù),那么可以考慮兼容。

4、Android屏幕尺寸和密度
同樣貼上Google官方圖

Mdpi Hdpi Xhdpi xxhdpi Total
Small 1.8% 1.8%
Normal 3.8% 40% 27.3% 15.5% 86.7%
Large 4.3% 0.5% 0.5% 7.6%
XLarge 2.9% 0.3% 0.7% 3.9%
Total 11.0% 40.8% 28.5% 15.5% -

(此處略去了ldpi和tvdpi)
上圖可以看到,我們其實(shí)只需要存放4中大小的圖片在本地就行,雖然還有一種ldpi,但是比例相當(dāng)少,只有2%,為了這2%另外存放一張圖不合算,還不如讓它們直接加載mdpi。這四種是mdpi,hdpi,xhdpi,xxhdpi,屏幕尺寸在small的也不需要考慮了,我想以后android廠(chǎng)商也幾乎不會(huì)發(fā)屏幕小于4寸的手機(jī)了。

圖片多大,放哪一個(gè)dpi文件夾,只和屏幕密度有關(guān),和屏幕分辨率沒(méi)關(guān)系。但是一般的1080p就能上x(chóng)xdpi,720p就能上x(chóng)dpi,480p就能上hdpi,480p以下就使用mdpi

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容