Android sdk版本以及兼容性問題

Android:minSdkVersion —— 此屬性決定你的應用能兼容的最低的系統版本,一盤狀況是必須設置此屬性。

android:targetSdkVersion —— 此屬性說明你當前的應用是針對某一個系統版本開發設計的,也就是說在這個系統版本上運行是沒有任何問題的。對於手機或其餘終端設備會根據此屬性值,決定是否顯示一些特性和效果。固然對於開發者最直接的影響就是,你所用到的API都是基於此版本上的,高於此targetSdkVersion的API在使用的時候會有警告或者錯誤提示。

android:maxSdkVersion —— 此屬性是決定你的應用能支持的版本最高是多少,超過此版本的系統將不能使用你的應用。



1、關於sdk向下兼容,意思是高版本兼容低版本,使用低版本sdk的應用能夠正常運行在高版本sdk的手機上,而高版本的sdk應用不能運行在低版本的手機上?

2、那使用高版本的sdk開發的應用都是如何正常運行在低版本的手機上的呢?

1)在程序中判斷sdk版本,而後寫不一樣代碼。 (見下三)

2)在應用項目中導入support-v4或v7包,使用新版本sdk特性。 (見下四)






三 、  爲了應用APP有更好的兼容性,我們能夠利用高版本的SDK開發應用,並在程序運行時(Runtime)對應用所運行的平臺判斷,舊平臺使用舊的API,而新平臺可以使用新的API,這樣能夠較好的提升軟件兼容性。參考:http://blog.csdn.net/leichelle/article/details/7988561


Check System Version at Runtime(在軟件運行時檢查判斷系統版本)
Android provides a unique code for each platform version in the Build constants class. Use these codes within your app to build conditions that ensure the code thatdepends on higher API levels is executed only when those APIs are available on the system.



private void setUpActionBar() {
    // Make sure we're running on Honeycomb or higher to use ActionBar APIs
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {


         ActionBar actionBar = getActionBar();
         actionBar.setDisplayHomeAsUpEnabled(true);
    }
}

android api向來是高版本兼容低版本。如api-8(android2.2)必會兼容api-4(android 1.6)

可是反之則不會,你使用2.2的平臺版本build了一個apk,若想能在1.6上運行,則須要作向下兼容.
android support-xx是google官方的向下兼容包.
如名所示,會幫助構建程序向下兼容到1.6版本.不過也並不是萬能的,仍是會受限制.
 google提供了Android SupportLibrary package系列的包來保證來高版本sdk開發的向下兼容性,即咱們用4.x開發時,在1.6等版本上,可使用高版本的有些特性,如fragement,ViewPager等,下面,簡單說明下這幾個版本間的區別:

   Android Supportv4: 這個包是爲了照顧1.6及更高版本而設計的,這個包是使用最普遍的,eclipse新建工程時,都默認帶有了。
   AndroidSupport v7: 這個包是爲了考慮照顧2.1及以上版本而設計的,但不包含更低,故若是不考慮1.6,咱們能夠採用再加上這個包,另外注意,v7是要依賴v4這個包的,即,兩個得同時被包含。
   AndroidSupport v13  :這個包的設計是爲了android3.2及更高版本的,通常咱們都不經常使用,平板開發中能用到。 
相關文章
相關標籤/搜索