2

多くの場合、Androidでは、バージョン3.0でメソッドが非推奨になり、別のメソッドを使用する必要があることがわかります。

ほとんどのデバイス(バージョン2.1など)をターゲットにしている場合、アプリをプログラミングするときにそのようなことをどのように処理しますか。同じアプリをバージョンごとに複数回コーディングしていますか?次に、APKごとにGoogle Playで異なるプロファイルを作成しますか?これは少し過剰で、意味がありません。そのような状況に対処する正しい方法を教えてください

ありがとう

4

2 に答える 2

4

最も簡単な方法は、アプリが実行されているバージョンを確認することです。いえ

if( Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB ) {
   [code for HC and up]
} else {
   [code for older versions]
}

すべてのバージョン コードは、こちらで確認できます。targetSdk可能な限り最新に設定してアプリをビルドする必要があることを忘れないでください。ただし、古いプラットフォームでは利用できないメソッドを簡単に使用でき、コンパイラが警告しないためアプリケーションがクラッシュするため、これは危険です。これを軽減するには、通常、何を使用しているかに注意を払うのに役立ちます:)だけでなく、そのような「危険な」コードをライブラリまたはユーティリティクラスにラップして、自分の他のコードがそのトリックを単独で実行しないようにすることもできます. また、http://d.android.com/ドキュメント(左側のタイトルバーの「Android APIs」の横にあるこれらの小さな上下矢印) のAPI フィルターを、サポートする予定の最も低いバージョンに設定することもできます。あまり使用されないため、「視覚的に」危険を察知する可能性があります。

そのようなチェックを行う Eclipse 用のプラグインもありますが、私自身は使用しておらず、現時点ではその名前を思い出せません。

于 2012-09-11T14:15:39.880 に答える
0

いいえ、複数のアプリを作成することはありません。

最初の解決策は、これがどの Android バージョンであるかを確認し、それに応じて行動することです。

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB){
    //do something
} else {
    //do something else
}

最初の解決策に基づく 2 つ目の解決策は、基本的な機能を定義する抽象クラスと、バージョン固有の実装を持つ子クラスを作成することです。抽象クラスはバージョンをチェックし、必要な子インスタンスを作成します。必要なときに抽象メソッドを呼び出すだけです。 詳しくはこちらをご覧ください

最初の解決策は、小さなタスクに適しています。2 番目は、より複雑な状況 (例: tabHost と新しいタブ ナビゲーション パターンの使用) に適しています。

于 2012-09-11T14:31:00.420 に答える