1.compileSdkVersion, targetSdkVersion, minSdkVersion, buildToolsVersion
minSdkVersion :很好理解,就是你的程序支持在哪個(gè)最低版本的額Android上跑
buildToolsVersion:使用哪個(gè)版本的build工具内列,一般build版本會隨著android版本的發(fā)布而發(fā)布久锥,所以一般選取最新的sdk版本就行
targetSdkVersion :目標(biāo)SDK,一般在這個(gè)sdk中的android手機(jī)最穩(wěn)定谒获,可以選擇目前使用最多的手機(jī)SDK
compileSdkVersion:這是最重要的,也是最難選擇的,選擇什么版本就需要用什么版本的sdk源碼去編譯嘶炭,另外support的版本要和這個(gè)版本一致裂逐,不然會出錯(cuò)歹鱼。
2、support包
程序員往往有這種困擾卜高,在開發(fā)一個(gè)android程序時(shí)弥姻,是使用舊版本的API還是新版本的額API,如果使用舊版本掺涛,新版本上的新特性和性能優(yōu)化就用不到了庭敦,多浪費(fèi)。如果使用新版本API薪缆,那么舊機(jī)器怎么辦秧廉?只能寫兩套代碼,每次請求的時(shí)候先判斷下系統(tǒng)版本拣帽,新版本則運(yùn)行新API疼电,舊版本則運(yùn)行舊API,很累有木有减拭。
這個(gè)時(shí)候就是Support包出場的時(shí)候了蔽豺,在一些關(guān)鍵更新API中,support包中都會擴(kuò)展這些API使得它們在低版本version也能使用拧粪,即避免寫兩套代碼修陡,又能夠最大化的利用起新API的性能特點(diǎn)。就是苦了Google的程序員了既们,不過為了讓更多的開發(fā)遷移到新版本API濒析,也是值得的。
support包有v4,v7,v13啥纸,推出這些包的作用是讓開發(fā)者能夠在低版本上運(yùn)行高版本的一些特性号杏,并不是說低版本加上這些包就是高版本的系統(tǒng)了,這些包只是在一些低版本的系統(tǒng)中擴(kuò)展一些高版本擁有的類庫,讓這些類庫能夠順利同低版本的API進(jìn)行轉(zhuǎn)換盾致,從而能夠順利運(yùn)行在低版本上面主经,避免了程序員的困擾。
V4包是兼容android1.6及之后的包庭惜,v7是兼容andorid 2.1及之后的包罩驻,V13是兼容Android 3.2及之后的包,V7包里面是含有V4包的护赊,V13是為了平板開發(fā)惠遏,基本已經(jīng)廢棄。
綜上所述:一般在開發(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等壁熄,一種是代號帚豪,比如 Android Cupcake,Sandwich草丧,Jelly Bean等等狸臣,一種是開發(fā)版本號,如 15,16,23,25等等方仿,這雖然是三種信息固棚,但是基本是一一對應(yīng)的,對于開發(fā)者來說只需要關(guān)注開發(fā)版本號就行仙蚜,大概知道版本號的市場占有率,下面是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)行了大量的更新厂汗,因此如果對市場客戶不是非澄郏苛刻的情況下,選擇minsdk為15或者以上將會增加一些系統(tǒng)性能娶桦。如果不能放棄這1.8%的客戶贾节,那么可以考慮兼容。
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廠商也幾乎不會發(fā)屏幕小于4寸的手機(jī)了疚脐。
圖片多大亿柑,放哪一個(gè)dpi文件夾,只和屏幕密度有關(guān)棍弄,和屏幕分辨率沒關(guān)系望薄。但是一般的1080p就能上xxdpi,720p就能上xdpi呼畸,480p就能上hdpi,480p以下就使用mdpi