これに混乱するたびに、検索して「理解した」と思いますが、そうではないようです。
あなたが構築しているAPIと、マニフェストで指定した最小SDKと、指定したターゲットSDKとの違いを説明してもらえますか。
例: minSDK が 8 で targetSDK が 15 のアプリケーションがあり、SDK 12 に対してビルドしています。違いは何ですか? どのデバイスで実行されますか? これらの違いから何を得ることができますか。誰か説明してください!ありがとうございました
これに混乱するたびに、検索して「理解した」と思いますが、そうではないようです。
あなたが構築しているAPIと、マニフェストで指定した最小SDKと、指定したターゲットSDKとの違いを説明してもらえますか。
例: minSDK が 8 で targetSDK が 15 のアプリケーションがあり、SDK 12 に対してビルドしています。違いは何ですか? どのデバイスで実行されますか? これらの違いから何を得ることができますか。誰か説明してください!ありがとうございました
違いは何ですか?
差は、2 つの数値を減算した結果です。しかし、それはここでは重要ではありません。:-)
どのデバイスで実行されますか?
それは他の何よりもあなたのコードに依存します。ただし、API レベル 7 以下では動作しませんminSdkVersion
。Android デバイス (および市場) では、API レベル 7 以下のデバイスではアプリを使用できません。
これらの違いから何を得ることができますか。
ビルド ターゲットを 12 に設定することで、コンパイラとビルド ツールに次のように伝えます。古いデバイスでは新しい API を使用しないでください。」ビルド ツール、特に Lint は、適切な保護 (たとえば、チェックandroid.os.Build.SDK_INT
) なしで新しい API を使用しようとすると、怒鳴りつけます。
15 に設定android:targetSdkVersion
することで、コンパイラとビルド ツールに対して、「このコードを書いたとき、API レベル 15 について考えていました」と言うことになります。ターゲットよりも新しいデバイスは、API レベル 15 での生活をよりよくエミュレートしようとするために、別のことを選択する場合があります。
後者の最も良い例はAsyncTask
. 従来、タスクは並行して実行できました。ただし、13 以上に設定し、API レベル 13 以上のデバイスで実行している場合、タスクはデフォルトで連続して実行されます。API レベル 13 以上のデバイスで実行しているが、12 以下である場合、デバイスは互換性を維持するために古い動作に戻ります。android:targetSdkVersion
android:targetSdkVersion
独自のアプリケーションを構築するために使用する SDK は、利用可能なすべてのクラスを定義します。利用可能な最高値 (現在 17) を使用しない理由はありません。
minSDK は、JoxTraex で言及されているように、「アプリが動作するために必要な Android OS の API の最小セット」です。
targetSDK は、アプリをテストした最高のビルドです。これにより、一部の機能が有効になります (Holo、Goodbye メニュー ボタン)。これらの変更は、新しい Android バージョンではデフォルトで導入されていますが、これらの新機能がテスト済みであることをマニフェストに記述する必要があります。
Min SDKは、アプリが機能するために必要なAPIの最小AndroidOSセットです。
ターゲットSDKは、メインのプラットフォームターゲットであるバージョンであり、通常、これは常に最小値よりも高くなります。
デバイスのプラットフォームバージョンは変更される可能性があるため、デバイスは決定されません。