compileSdkVersion 和 targetSdkVersion 的區別


簡介

SDK(軟體開發工具包)為開發人員提供了一套工具,例如庫、工具和 API,用於為特定平臺構建應用程式。SDK 版本指的是應用程式構建所針對的 Android 平臺的版本。每個版本的 Android SDK 對應於 Android 作業系統的特定版本。例如,Android 11 的 SDK 版本為 30,而 Android 10 的 SDK 版本為 29,依此類推。

在開發 Android 應用程式時,瞭解 compileSdkVersion 和 targetSdkVersion 之間的區別至關重要。這兩個術語有時可能會讓開發人員感到困惑,瞭解它們的含義對於確保應用程式在不同裝置和作業系統上平穩執行至關重要。

您可以在 build.gradle 檔案中找到這些 compileSdkVersion 和 targetSdkVersion,如下所示

build.gradle (app)

android {
   compileSdk 33
   defaultConfig {
       minSdk 21
       targetSdk 33
       versionCode 1
       versionName "1.0"
   }
}

什麼是 Android 中的 compileSdkVersion?

compileSdkVersion 是用於編譯應用程式的 Android SDK 版本。此版本確定您可以在應用程式中使用哪些 API 和功能。當您使用特定的 compileSdkVersion 編譯應用程式時,您告訴構建系統使用該特定版本的 API,並確保您的程式碼與該版本相容。但是,值得注意的是,使用較高的 compileSdkVersion 並不一定意味著您的應用程式可以訪問較低版本中不存在的新功能或 API。

什麼是 Android 中的 targetSdkVersion?

targetSdkVersion 是應用程式設計執行的 Android API 版本。此版本告訴作業系統您的應用程式期望使用哪些 API 和功能。當您將 targetSdkVersion 設定為特定版本時,您告訴系統您的應用程式針對該版本進行了最佳化,並且系統應啟用任何必要的相容性行為以確保您的應用程式在該版本上正確執行。

在涉及 Android 版本控制系統時,設定 targetSdkVersion 尤其重要。Android 定期釋出更新,每個版本都可能包含對作業系統或其 API 行為的更改。當您將 targetSdkVersion 設定為最新可用版本時,您告訴作業系統您的應用程式針對該版本進行了最佳化,並且已測試可以與可能引入的任何更改一起正常工作。

需要注意的是,設定 targetSdkVersion 並不意味著您的應用程式不能在舊版本的 OS 上執行。相反,它通知系統您的應用程式設計用於與該版本配合使用,並且系統將啟用任何必要的相容性行為以確保您的應用程式平穩執行。但是,如果您將 targetSdkVersion 設定為舊版本的 API,您的應用程式可能會錯過新版本中引入的任何新功能和最佳化。

targetSdkVersion 和 compileSdkVersion 的區別

編譯 SDK 版本

目標 SDK 版本

編譯 SDK 版本是可用於編譯應用程式的 Android SDK 的最低版本。

目標 SDK 版本是應用程式設計的 Android 應用程式版本,可以在開發應用程式時更改。

可以在開發應用程式時更改編譯 SDK 版本。

目標 SDK 版本無法更改。

用於測試應用程式的相容性。

用於確保應用程式在 Android 裝置上按預期執行。

可用於更改新的 API 功能。

不能用於更改新的 API 功能。

編譯 SDK 版本可以是低於目標 API 級別的舊 API 級別

目標 SDK 版本應始終與編譯 SDK 版本相同或更高。

結論

總而言之,compileSdkVersion 是用於編譯應用程式的 Android SDK 版本,而 targetSdkVersion 是應用程式針對其最佳化的 Android API 版本。正確設定 compileSdkVersion 和 targetSdkVersion 對於確保應用程式在不同裝置和作業系統上平穩執行至關重要。

更新時間: 2023年5月9日

8K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.