私はドキュメンテーションcompileSdkVersion
Gradle でビルドするためのものですが、との違いがまだよくわかりませんtargetSdkVersion
。
そこにはこう書いてあるだけです:
The `compileSdkVersion` property specifies the compilation target.
さて、「コンパイル対象」とは何でしょうか?
これを解釈するには 2 つの方法が考えられます。
compileSdkVersion
はアプリの構築に使用されたコンパイラのバージョンであり、targetSdkVersion
は「アプリケーションが対象とする API レベル」(もしそうなら、は?compileSdkVersion
以上でなければならないと思います。)targetSdkVersion
- これらは同じ意味です。「コンパイル ターゲット」 == 「アプリケーションがターゲットとする API レベル」
- 他に何かありますか?
私はそれを見るこの質問以前にも質問されましたが、回答の 1 つはドキュメントを引用しているだけなので、私にはよくわかりません。
ベストアンサー1
コンパイルSdkバージョン
これcompileSdkVersion
は、アプリがコンパイルされる API のバージョンです。つまり、そのバージョンの API (および以前のすべてのバージョン) に含まれる Android API 機能を使用できるということです。API 16 の機能を使用しようとしてcompileSdkVersion
15 に設定すると、コンパイル エラーが発生します。16compileSdkVersion
に設定しても、アプリの実行パスが API 16 固有の API を呼び出さない限り、API 15 デバイスでアプリを実行できます。
ターゲットSDKバージョン
はtargetSdkVersion
、アプリのコンパイル方法や利用できる API とは関係ありません。 は、targetSdkVersion
指定したバージョン (おそらくそのバージョンまで) でアプリをテストしたことを示すためのものです。これは、Android OS に OS 機能に関してアプリをどのように処理すべきかのヒントとして与える認証または承認のようなものです。
例えば、ドキュメント状態:
たとえば、この値を「11」以上に設定すると、Android 3.0 以降で実行しているときに、システムはアプリに新しいデフォルトのテーマ (Holo) を適用できるようになります...
Android OS は実行時に、この値に基づいて OS のコンテキストでアプリのスタイル設定や実行方法を変更することがあります。この値の影響を受ける既知の例は他にもいくつかあり、そのリストは時間の経過とともに増えていくと思われます。
実用上、ほとんどのアプリでは、targetSdkVersion
API の最新リリース バージョンに設定することをおすすめします。これにより、最新の Android デバイスでアプリの外観が可能な限り良くなります。 を指定しない場合はtargetSdkVersion
、 がデフォルトになりますminSdkVersion
。