3 回答

TA貢獻1770條經驗 獲得超3個贊
該分SDK版本是Android SDK應用程序可以運行的最早版本。通常這是由于較早的API出現問題,缺少功能或其他一些行為問題所致。
該目標SDK版本為您的應用程序的版本針對上運行。理想情況下,這是因為某種最佳運行條件。如果要“使您的應用程序版本為19”,則將在此處指定。它可能在早期或更高版本上運行,但這是您的目標。這主要是為了指示您的應用程序在市場等方面的最新使用情況。
該編譯SDK版本是Android平臺的IDE(或編譯,我想其他的部件)版本使用,使您的應用程序時,您發布.apk
的文件。這對于測試您的應用程序很有用,因為在開發應用程序時通常需要編譯該應用程序。由于這是要編譯為APK的版本,因此自然是您發布的版本。同樣,建議您將此目標匹配為sdk版本。

TA貢獻1804條經驗 獲得超3個贊
該分SDK版本是運行應用程序所需的Android操作系統的最低版本。
該目標SDK版本就是Android的版本,您的應用程序創建來運行。
該編譯SDK版本就是Android的版本的編譯工具用來編譯和為了釋放,運行或調試構建應用程序。
通常,編譯sdk版本和目標sdk版本是相同的。

TA貢獻1796條經驗 獲得超4個贊
公式是
minSdkVersion <= targetSdkVersion <= compileSdkVersion
minSdkVersion-是一個標記,用于定義可在其上安裝應用程序的最低Android版本。Lint還使用它來防止調用不存在的API。它還對構建時間有影響。因此,在開發過程中,您可以使用構建樣式將minSdkVersion覆蓋為最大。使用Android團隊為我們提供的所有改進,這將有助于加快構建速度。例如,某些Java 8功能僅可從特定版本的minSdkVersion使用。
targetSdkVersion-表示Android系統可以打開特定的行為更改。
例如:
從Android 6.0(API級別23)Runtime Permissions開始引入。如果設置targetSdkVersion為22或更低,則您的應用程序不會在運行時要求用戶獲得某些權限。
從Android 8.0(API級別26)開始,所有內容都notifications必須分配給一個頻道,否則它將不會出現。在運行Android 7.1(API級別25)及更低版本的設備上,用戶只能按每個應用程序管理通知(實際上,每個應用程序在Android 7.1或更低版本中僅具有一個通道)。
從Android 9(API級別28)開始,Web-based data directories separated by process。如果targetSdkVersion是28歲以上,并且您WebView在不同的流程中創建了多個流程,則會得到java.lang.RuntimeException
compileSdkVersion-實際上是SDK平臺版本,告訴Gradle使用哪個Android SDK進行編譯。當您要使用新功能或.java從Android SDK 調試文件時,應注意compileSdkVersion。 compileSdkVersion 未包含在您的APK中:僅在處使用compile time。更改compileSdkVersion不會更改運行時行為。例如,它可以生成新的編譯器警告/錯誤。因此,強烈建議您始終使用最新的SDK進行編譯。您將獲得對現有代碼進行新編譯檢查的所有好處,避免使用新近棄用的API,并準備使用新的API。還有一個事實是compileSdkVersion >= Support Library version
您可以在此處了解更多信息。另外,我建議您看一下遷移到Android 8.0 的示例。
- 3 回答
- 0 關注
- 3363 瀏覽
添加回答
舉報