2012-04-22 9 views
1

SDKをインストールすると、約97%の携帯電話がAndroid 2.1をサポートしています。 新しいプロジェクトを開くときは、私の質問は私がAndroid 2.1にコンパイルすることを選択する必要がありますか? 2.1用に作成されたアプリケーションは、新しいバージョンで動作しますか? 反対の仕事はありますか?私が4.0.3になったら、それはもっと古いもので動作しますか?どのバージョンを選択しますか?

おかげで、 エリック

答えて

5

私の質問は私が新しいプロジェクトを開くときにAndroid 2.1にコンパイルすることを選択する必要がありますか?

ビルドターゲット(「コンパイルする」を選択)に指定したものは、アプリケーションの実行に使用できるAndroidのバージョンに直接影響しません。

2.1用に作成されたアプリケーションは、新しいバージョンで動作しますか?

"for"という単語の妥当な解釈については、「はい」です。

私が4.0.3に開発した場合、古いバージョンで動作しますか?

Agarwalの回答と同様に、これは「to」の意味にもよります。

たとえば、CalendarContractを使用するとします。このクラスはAPIレベル14(a.k.a.、Android 4.0)で追加されました。あなたがのみを使用すると、Android 4.0以降のデバイスでCalendarContractを使用しても問題ありません。ただし、古いデバイスでCalendarContractを使用しようとすると、そのクラスはファームウェアに存在しないため、クラッシュします。

条件付きでより新しいAPIを使用することができます。これは、新しいバージョンのAndroidを搭載したデバイスでこれらの新しいAPIを使用することを保証している限りです。通常、これは次のようなバージョンガードブロックを介して行われます。

if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.HONEYCOMB) { 
    // do something that requires API Level 11+ here 
} 
+0

右。非常に特定の答えをありがとう。 –

+0

しかし何らかの理由で私は2.2上で単純なICS HelloWorldアプリケーションを実行できません。なぜどんなアイデア? –

+0

@BojanKogoj:いろいろな意味を持つことができる「実行できない」以外の症状を提供していないため、いいえ。ここで質問をしてください。アプリがクラッシュしている場合は、スタックトレースを含めます。 – CommonsWare

0

あなたが4.0.3に開発した場合、それは古いバージョンのデバイスにインストールされます文句を言いません。 2.1用に開発した場合、新しいバージョンでうまく動作します。しかし、あなたが使えば、4.0.3の機能を得ることはできません。

+0

これは単語「to」の定義に完全に依存します。 – CommonsWare

+0

反対はどうですか?新しいデバイスで動作する2.1(または2.2がより一般的ですか?) –

関連する問題