「最小SDKバージョン/ターゲットSDKバージョン」と「コンパイルSDKバージョン」の違いは何ですか?minとtarget sdkの意味を知っていますが、sdkバージョンのコンパイルは何を意味しますか?
Eclipseでは、min / maxとtarget sdkがありますが、android studioではこれらの3つの設定があります。
「最小SDKバージョン/ターゲットSDKバージョン」と「コンパイルSDKバージョン」の違いは何ですか?minとtarget sdkの意味を知っていますが、sdkバージョンのコンパイルは何を意味しますか?
Eclipseでは、min / maxとtarget sdkがありますが、android studioではこれらの3つの設定があります。
回答:
分のSDKのバージョンは、あなたのアプリケーションが実行できるのAndroid SDKの初期リリースです。通常、これは以前のAPIの問題、機能の欠如、またはその他の動作上の問題が原因です。
ターゲットSDKのバージョンは、アプリケーションがされたバージョンです対象に実行します。理想的には、これはある種の最適な実行条件によるものです。「バージョン19のアプリを作成する」場合は、ここで指定します。以前のリリースでも後のリリースでも動作する可能性がありますが、これはあなたが目指していたものです。これは主に、アプリケーションが市場などでどのように使用されているかを示すためのものです。
コンパイルSDKのバージョンは、お使いのIDE(または私は仮定コンパイルの他の手段)を使用すると、公開時にアプリを作るために使用するアンドロイドのバージョンで.apk
ファイルを。これは、開発時にアプリをコンパイルする必要があるため、アプリのテストに役立ちます。これはAPKにコンパイルするバージョンになるため、当然、リリースのバージョンになります。同様に、これをターゲットSDKバージョンと一致させることをお勧めします。
式は
minSdkVersion <= targetSdkVersion <= compileSdkVersion
minSdkVersion-アプリケーションがインストールできるAndroidの最小バージョンを定義するマーカーです。また、存在しないAPIの呼び出しを防ぐためにLintによって使用されます。また、ビルド時間にも影響します。したがって、ビルドフレーバーを使用して、開発中に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以下では、各アプリには1つのチャネルしかありません)。
、アンドロイド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に注意する必要があります。もう1つの例は、使用を強制するAndroidXの使用compileSdkVersion
です。レベル28 compileSdkVersion
はAPKに含まれていませんcompile time
。純粋にで使用されています。compileSdkVersionを変更しても、ランタイムの動作は変わりません。たとえば、新しいコンパイラの警告/エラーを生成できます。したがって、常に最新のSDKでコンパイルすることを強くお勧めします。既存のコードでの新しいコンパイルチェックのすべての利点が得られ、新しく廃止されたAPIを回避し、新しいAPIを使用できるようになります。もう一つの事実はcompileSdkVersion >= Support Library version
詳細については、こちらをご覧ください。また、Android 8.0 への移行の例をご覧になることをお勧めします。
compileSdkVersion:compileSdkVersionは、アプリがコンパイルされる対象のAPIのバージョンです。これは、そのバージョンのAPIに含まれているAndroid API機能を使用できることを意味します(明らかに、以前のすべてのバージョンと同様)。API 16の機能を使用しようとして、compileSdkVersionを15に設定すると、コンパイルエラーが発生します。compileSdkVersionを16に設定しても、API 15デバイスでアプリを実行できます。
minSdkVersion:min sdkバージョンは、アプリケーションの実行に必要なAndroidオペレーティングシステムの最小バージョンです。
targetSdkVersion:ターゲットSDKバージョンは、アプリの実行対象となるバージョンです。