0

私はAndroidのtargetsdkバージョンについて多くの質問を見てきました。しかし、説明についてはかなり明確ではありません。minsdk と maxsdk のバージョンに比べて少しトリッキーだと思います。私はdeveloper.android.comに目を通し、sdkタグの使用について読んだことがあり、この概念を説明するビデオはほとんどありませんでした。しかし、targetsdk のバージョンを明確に把握することはできません。前に言ったように、スタック オーバーフローに関する質問と回答が既に何千もあるので、この問題のシンプルで明確な解決策を得るために、これを再度投稿します。ですから、この質問に親切に耐えて、私を助けてください。

これは、developer.android.com のステートメントです。

ただし、プラットフォームの API レベルがアプリの targetSdkVersion で宣言されたバージョンよりも高い場合、システムは互換動作を有効にして、アプリが期待どおりに動作し続けることを保証する場合があります。targetSdkVersion を実行しているプラ​​ットフォームの API レベルに一致するように指定することで、このような互換動作を無効にすることができます。

私は、targetsdkversion を 14 に指定し、android api レベル 19 (android 4.4) で実行しようとした小さなサンプルを作成しました。アプリは問題なくインストールされ、正常に動作しています。

targetsdkverion を削除すると、デフォルトで minsdkversion value に設定され、再びアプリがインストールされ、正常に動作しています。

私のサンプルと上記のステートメントはどちらも矛盾しているため、概念について混乱しています。ビデオチュートリアル付きの簡単な説明で詳しく説明してください。

Q1) 今、targetsdkversion を指定した場合、前方互換性はありますか? (下位互換性があることを願っています。

Q2) targetdk のバージョンを常に最新バージョンのリリースに設定する必要があると誰もが言うのはなぜですか?

Q3) どのようなシナリオで、targetsdkversion を最新バージョンのリリース番号よりも低く指定する必要がありますか? そして、これの影響は何ですか?(つまり、targetsdkversion = 14 および maxsdkverion= 19)。

皆さん、これについてあなたの助けが必要です。ありがとう..

4

1 に答える 1

1

私は、targetsdkversion を 14 に指定し、android api レベル 19 (android 4.4) で実行しようとした小さなサンプルを実行しました。アプリは問題なくインストールされ、正常に動作しています。

これは何の意味もありません。ほとんどの場合、問題なく動作すると思いますが、動作や外観が少し異なる機能がいくつかある可能性があります...テーマ、UIなどはわかりません。SDKのバージョンがすべての SDK バージョン、すべての Android 機能、すべての Android デバイスで同じテストを実行すると、ガイドラインに従って TargetSDK を最新バージョンに設定する必要があるという事実に出くわす可能性があります。

今、targetsdkversion を指定した場合、前方互換性はありますか? (下位互換性があることを願っています

将来 Android に何が起こるか分からないので、これは答えにくい質問ですが、現時点では Android チームは、システムが互換性動作を有効にする必要があるとしても、API レベルを「前方互換性」に保つよう努めています。

targetsdk のバージョンを常に最新バージョンのリリースに設定する必要があると誰もが言うのはなぜですか?

これは、互換性の動作を有効にするシステムを作成しないことを中心に発展するベスト プラクティスのガイドラインです。これにより、アプリの動作が少し異なる可能性があり、アプリの targetsdk が実行されている現在のシステムよりも低いためです。

最新バージョンのリリース番号よりも低い targetsdkversion を指定する必要があるのは、どのようなシナリオですか。そして、これの影響は何ですか?(つまり、targetsdkversion = 14 および maxsdkverion= 19)

上記のように、常に最新の SDK バージョンをターゲットにする必要があります。maxSdkVersionAndroid では推奨されていません。システム アップデートに関連する特定の問題を回避するために、この設定を使用しないでください。より具体的には、ドキュメントからの抜粋です...

Android 1.5、1.6、2.0、および 2.0.1 では、アプリケーションをインストールするとき、およびシステム アップデート後にアプリケーションを再検証するときに、システムがこの属性の値をチェックします。どちらの場合でも、アプリケーションの maxSdkVersion 属性がシステム自体で使用される API レベルよりも低い場合、システムはアプリケーションのインストールを許可しません。

したがって、ユーザーがアプリケーションをインストールできない可能性があることは明らかです。

まとめとして、それでもわからない場合は、Android のドキュメントでベスト プラクティスと見なされていることに従うことをお勧めします。あなたが理解できない何か:P

コメントに基づいて編集

互換性動作とは、Android で使用される非常に一般的な用語で、SDK の下位バージョン用にビルドされたアプリのさまざまなルーチンや機能を実行するために Android がどのように評価されるかを説明するものです。1 つの例は、Android が廃止されたアクセス許可をどのように扱うかです。たとえば、同じ API レベルをターゲットとするアプリを実行している API レベル 8 デバイスがあり、このアプリがPERSISTENT_ACTIVITY PermissionAPI レベル 8 で非推奨になったリクエストを実行しているとします。Android がこの権限を効果的に評価するとどうなりますか?

ここで、同じ API レベルを対象とする同じアプリを考えてみますが、今回は KitKat で実行されています。どうした?正確にはわかりませんが、知識に基づいた推測では、Android では互換性動作がこの許可を無視できるようになるでしょう。わかりましたか?

于 2014-10-14T07:01:54.127 に答える