所謂適配低版本,是指:
1軟件需要能夠在低版本android系統(tǒng)上運(yùn)行
2軟件需要能夠在低版本上達(dá)到高版本的一些功能效果
要達(dá)到以上第一點(diǎn)肥惭,需要:
1代碼中舅巷,使用到高版本的一些方法時(shí)套硼,需要添加版本高低判斷垫毙,在低版本上不調(diào)用高版本才有的方法霹疫。
2資源上面,針對(duì)不同的版本使用不同的資源文件夾综芥,提供針對(duì)不同版本的資源文件丽蝎。只使用當(dāng)前版本擁有的資源屬性和類型。
要達(dá)到以上第二點(diǎn)膀藐,需要:
1針對(duì)低版本上隱藏的api屠阻,可以使用反射的方式進(jìn)行調(diào)用
2針對(duì)低版本上沒(méi)有的功能或者資源屬性和類型,使用適配包额各,appcompat
使用適配包的一般步驟:
1Application使用的主題需要是AppCompat主題
2baseactivity需要集成CompatActivity
3自定義的基礎(chǔ)組件類型需要繼承自CompatEditText国觉。。虾啦。
4使用AppCompat支持的一些屬性蛉加,一般是高版本中的屬性將android:前綴去掉蚜枢。
注意:
1不要混淆解決問(wèn)題1和2使用的一些方法缸逃。
比如AppCompat中的屬性是不需要區(qū)別不同的版本的针饥。只有當(dāng)你需要在低版本中去掉對(duì)高版本的一些屬性的使用的時(shí)候才需要建立不同版本的資源文件夾,使得只在高版本中才使用這些屬性需频,為了防止低版本中出現(xiàn)崩潰丁眼。
再比如你明確需要高低版本需要達(dá)到同樣的效果,那么就不需要針對(duì)不同版本建立不同文件夾昭殉,需要做的是使用Compat包中的對(duì)應(yīng)的高版本的屬性苞七。
2針對(duì)Compat包中無(wú)法實(shí)現(xiàn)的一些效果。
一般的需要要求高版本按系統(tǒng)提供的來(lái)挪丢,低版本需要一些特殊的技巧實(shí)現(xiàn)類似的效果蹂风。
這時(shí)候你需要做的就是建立高版本的資源文件夾,使用提供的屬性乾蓬。代碼中針對(duì)高版本使用高版本提供的api惠啄,來(lái)實(shí)現(xiàn)需求效果。
針對(duì)低版本的任内,(結(jié)合Compat提供的有限的新功能)+自己的想象力和創(chuàng)造力去實(shí)現(xiàn)類似的效果撵渡。