私は最近アプリケーションを開発していて、研究していました。Galaxy S3 の API である 4.1.2 API で Android アプリケーションを最初にプログラミングしました。しかし、今日、私は間違いを犯したので、新しい心でプログラミングを再開しました. そこで、APIやデバイスなど、どのようなプラットフォームでプログラミングすればよいかを研究していました。そうすれば、xml ブルー プリントのコンポーネントの高さと幅を完全に合わせることができます。しかし、調査を通じて気づいたことの 1 つは、デバイスの wXh 比が問題ない限り、Galaxy S3 でも 2.3.3 で他のプログラマーがプログラムしていることです。では、API レベルは本当に問題ではないのでしょうか。だから... wXh ration が大丈夫である限り、API が問題にならない理由を知りたいです。そして、Galaxy S3 用のアプリケーション用の優れた (完全な、実際には) 仮想デバイスと API
5 に答える
API は重要ですが、画面サイズや解像度とは関係ありません。使用できる機能に関係しています。
たとえば、Android 2.3 を対象とする場合、アプリは 2.3 以降のすべてのバージョンで動作しますが、2.3 内で新しい API 関数を使用していて、2.2 デバイスにアプリをインストールしようとすると、新しい 2.3 関数が呼び出されると、NoClassDefFoundError
呼び出そうとしたクラス/関数が存在しないという意味でアプリがクラッシュします。
デバイスの高さと幅がすべてではありません。Android レイアウトは静的ではなく、アプリケーション インターフェイスに固定の高さと幅を与えることは想定されていません。むしろ、すべてのデバイスに収まるように、相対サイズの wrap_content または fill_parent タイプとして指定するレイアウトを使用する必要があります。
さらに、低密度、中密度、および高密度の画面のレイアウトを指定して、ほとんどのデバイスで適切に動作できるようにする必要があります。
API バージョンでは、開発者として、できるだけ多くの人がアプリを使用できるようにする必要があります。バージョン 2.3.3 と ICS がインストールされているデバイスでアプリケーションを実行できることを確認する必要があります。これを実現するには、2.3.3 をターゲットにして開発することをお勧めします。
API レベルが重要です。Samsung Galaxy S3 では Android 4.1 の API を使用できますが、プログラマーは古いデバイスとの互換性のために (ご指摘のとおり) API レベル 8 を使用しています。http://en.wikipedia.org/wiki/Backward_compatibility
古いプラットフォームもサポートするために、2.3.3 用に開発されています。
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
これは、2.3.3 から 4.2.2 までをサポートすることを意味します。
新しい API を使用し、古い API をサポートできます。この種のセットアップでは、新しいプラットフォームを実行する場合にのみ、新しい API を使用するように注意する必要があります。
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
asyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, params);
} else {
asyncTask.execute(params);
}
Galaxy S3のみ対応ならAPI16からでも大丈夫
<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="17" />
API 2.3.3 は、Android を開発するためのある種の「標準」です。なぜなら、今日まで (または最後にチェックしたときまで)、Android 市場の約 40% がまだバージョン 2.3.3 を使用しており、この API をminSdkVersion
(2.3.3 は 10 btw) 市場の約 96% をヒットします (Google によると)。Android 4 (ICS 以上) にアップグレードする人が増えるにつれて、これらの行を書いているときに、これらの数値は変化しています。あなたのアプリが処理できるなら、私はそれを信じています