Android之 compileSdkVersion, minSdkVersion, and targetSdkVersion

來源:互聯網
上載者:User

標籤:

在一年之中,也有可能只是幾個月後,你會發布你的Android應用程式。但是這中間有可能會發布新的版本的Android系統,比如:6.0+。

你肯定希望你的應用可以向前相容,當使用者升級到新的Android系統時候,你的應用調用的系統API不會編譯失敗,也不會Crashing。

這時候就要考慮一下三個參數了:compileSdkVersionminSdkVersion, and targetSdkVersion (它們標識什麼版本的API可以使用,應用相容的版本,編譯需要的API版本)

compileSdkVersion

告訴Gradle,用哪個版本的sdk編譯你的應用,如果用到高版本的API,那就需要把compileSdkVersion設定為API對應的高版本。需要指出的是,改變編譯的版本,不會改變應用運行時候的展現,但是新的警告或者報錯可能會出現。compileSdkVersion不會包含到你的應用中,它只是純粹的編譯應用。所以,當編譯時間期遇見的錯誤和警告,最好的解決方案就是修複它們。

 

強烈推薦把你的compileSdkVersion設定為最新的,用最新的sdk編譯應用,會檢查最新的sdk對現有的代碼的影響,避免已經過時的API,並且準備用最新的API,那樣會使的你的應用在相容性方面更加健壯。

需要提示的是,如果你使用了Support Library,必須使用最新的sdk進行編譯,比如,為了使用 23.1.1 Support Library,你的編譯版本最少為23(第一位元字一定要匹配),一般情況下,新的Support Library 發布都會伴隨一個platform version提供更好的相容。

minSdkVersion

 

如果編譯版本設定使用最新的APIs,那麼你的minSdkVersion就要設定能夠使用最新APIs的版本。minSdkVersion是Google Play Store用來判定你的應用能夠安裝到那些裝置上。也就是你應用相容的最低版本,同時,對於開發人員,當你使用lint 檢查你的應用時候,會提示你哪些APIs不相容最低版本(minSdkVersion),這時候你就要根據系統的版本來使用不同APIs,以避免運行時遇見的各種意想不到的Crashing。

 

一定要時刻記住你所使用的第三方庫,比如 Support Libraries orGoogle Play services, 它們所支援的minSdkVersion是否跟你的應用衝突,是根據它們調整你的minSdkVersion,還是為了相容你的minSdkVersion,而判定不同的系統版本再使用第三方的庫,二者取其一,當然,如果你非要在你相容低版本的情況下使用高版本的庫,那麼需要你使用 tools:overrideLibrary marker,來設定更詳細的AndroidMainfest.xml.

 

targetSdkVersion

targetSdkVersion是Android提供了向前相容性的主要方式。最好的方式就是把它設定最新的。

 

三者之間關係:

minSdkVersion <= targetSdkVersion <= compileSdkVersion

 

理想的關係應該是這樣:

minSdkVersion (lowest possible) <= 
targetSdkVersion == compileSdkVersion (latest SDK)


 

 

 

 

 

Android之 compileSdkVersion, minSdkVersion, and targetSdkVersion

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.