2

targetSdkLevelの正しい値を決定する方法を説明してもらえますか?

Android 2.3.7 から 4.0.3 までのすべてのバージョンで動作するアプリを構築したいとします。 minSdkLeveltargetSdkLevelをどのように設定すればよいですか?

前者は android 2.3.7 の API レベルに、後者は 4.0.3 の API レベルに合わせる必要がありますか?

次に、アプリを開発するときは、サポートされている最も古い SDK レベルで利用可能なメソッド/クラスのみを使用する必要がありますか?

アプリをコンパイルすると、2.3.7 または 4.0.3 用にコンパイルされますか?

このタグで指定された新しいバージョン用に apk をコンパイルできないため、 targetSdkLevelの目的を理解できません。それ以外の場合は、 minSdkLevelで指定されたバージョンまでのバージョンでは動作しません。なぜtargetSdkLevelを最新の利用可能なレベル?

uses-sdk Manifest タグに関する公式情報も読みましたが、まだ理解できません。このトピックを明確にするのを手伝ってもらえますか?

編集:皆さんに感謝し、重複した質問をお許しください。このブログ投稿を読みましたが、本当に役に立ちました。皆様からの素晴らしい回答。

4

4 に答える 4

4

ここで明確に説明されています:http://developer.android.com/guide/topics/manifest/uses-sdk-element.html

minSdkVersion:

アプリケーションの実行に必要な最小 API レベルを指定する整数。システムの API レベルがこの属性で指定された値よりも低い場合、Android システムはユーザーがアプリケーションをインストールできないようにします。この属性は常に宣言する必要があります。

そして、targetSdkVersion

アプリケーションが対象とする API レベルを指定する整数。設定されていない場合、デフォルト値は minSdkVersion に指定された値と同じです。この属性は、ターゲット バージョンに対してテストしたことをシステムに通知し、システムはターゲット バージョンとのアプリの前方互換性を維持するために互換動作を有効にすべきではありません。アプリケーションは、古いバージョン (minSdkVersion まで) でも実行できます。

ここでわからないことは何ですか?

設定方法は次のとおりです。

<uses-sdk android:minSdkVersion="10" 
          android:targetSdkVersion="15"/>

API レベル 14 の変更については、http: //developer.android.com/sdk/api_diff/14/changes.html で、API レベル 4 ではhttp://developer.android.com/sdkで確認できます。 /api_diff/4/changes.html

于 2012-06-01T20:25:13.343 に答える
4

minSdkLevelで指定された SDK で使用可能なメソッド/クラスのみを使用するか、ランタイム API バージョンの適切なチェックでそれらをラップする必要があります。

アプリケーションは、 minSdkLevelまたはtargetSdkLevelで指定されたものではなく、プロジェクト自体で指定された SDK でコンパイルされます。

targetSdkLevelは、アプリケーションをテストした最高レベルの API に設定する必要があります。これは、この値に基づいてアプリケーションの互換性の動作が有効/無効になるためです。

于 2012-06-01T20:26:00.323 に答える
1

ターゲットを使用してビルドすると、ユーザーがターゲットを下回っているかどうかを確認して適切にダウングレードできます。たとえば、位置認識アプリを作成している場合、バージョン 8 以降で利用可能な PASSIVE_PROVIDER を使用することができます。最小バージョンを 8 未満に設定し、Android バージョンを確認できます。そこから、バージョンに基づいて PASSIVE_PROVIDER を使用するかどうかを決定できます。

于 2012-06-01T20:29:50.947 に答える
1

google は、常に targetSdk の最新バージョンを使用することをお勧めします。また、lint ツールを使用して、クラスとメソッドが minSdkVersion に対して新しすぎないことを確認します。警告の場合は、対処方法を考える必要があります。

人々がここで言及したように、targetSdk を設定すると、アプリの一部の側面が変更されることにも注意してください。

1 つの側面は、アプリがメニュー ボタンを処理する方法です。targetSdk を 11 以上に設定すると、メニュー ボタンがあると想定できないことを意味するため、アクション バーを処理してオプションを配置する必要があります。何らかの方法で(またはアプリの設計に応じて他の方法で)そこにあります。

10 以下に設定すると、 htc one xgalaxy nexusなど、メニュー ボタンのないデバイスの画面にこのボタン (3 つのドットで表示) が追加されます。一部のデバイスでは見栄えが悪いことに注意してください(たとえば、 htc one x の行全体を取ります)。

要するに、できるだけ多くの人をサポートするためにminSdkをできる限り最小に設定し、targetSdkをできる限り最大に設定して、それが与えることができるすべての利点を享受することをお勧めしますあなた 。

于 2012-06-01T20:35:25.190 に答える