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及更高版本的,一般我們都不常用,平板開發中能用到。 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM