Android用に最低限のAPIバージョン21を作成することにしましたが、AppCompatをもう使用する意味がありませんか?単純なマテリアルデザイン/ No AppCompat /などを使用するだけですか?minAPIを21に設定した場合、AppCompatが必要ですか?
答えて
いいえ、常にAppCompatを使用する必要があります。これにより、アプリがすべてのAPIレベルで既に一貫性があり、新しいAPI(API23でのみ導入されたColored buttonsを使用するなど)にアクセスできるようになります。
Design Support Libraryなどの他の多くのライブラリでも、AppCompatを使用する必要があります。
AppCompatを使用しないシナリオではどのようなシナリオですか? –
Playストアでもリリースされていないシステムアプリケーション(後方互換性/デバイス間の一貫性は問題ありません)や、Androidフレームワークビューを使用していないUnityなどのゲームを構築する場合まったく。 – ianhanniballake
あなたがアクションバーを持つようにしたい、とあなたminSdkVersion
は現時点で11を下回っている場合は、appcompat-v7
を使用する必要がある1つのシナリオは、このためのappcompat-v7
にありません一般的に使用され、維持され、代替があります。
そうでない場合は、appcompat-v7
が考慮すべきものですが、それは要件ではなく、それを使用するための明確なコストがあります。
は、多くのウィジェットがサブクラスに置き換えられて、脆弱性を増加しました。あなたのレイアウトで
EditText
が呼び出されることがありますが、AppCompatActivity
はそれを黙ってAppCompatEditText
(EditText
)に置き換えます。理想的な世界では、これは問題ありません。しかし、デバイスメーカーは、標準的なウィジェットの実装を乱してきた歴史があります。標準ウィジェットのサブクラスを作成すると、デバイスメーカーが導入したバグを乗り越えることができます。私は具体的にEditText
と個人的に多くを実行しました。アプリサイズが大きくなりました。
appcompat-v7
は、APKサイズに〜1MBを追加します。 Googleが指摘しているように、開発者は積極的にAPKサイズを縮小しようとする必要があります。一部のユーザーはMB単位で料金を支払う必要があります(APKのダウンロードにはコストがかかります)。必須材料設計審美的。 Googleは、独自の政治的理由から、すべてのアプリがマテリアルデザインを使用することを望んでいます。マテリアルデザインには、その支持者と批評家がいます。すべてのデザイナーがマテリアルデザインに従いたいとは限りません。
appcompat-v7
は、Googleの仕様からの望ましい偏差に応じて、非マテリアルデザインデザインを実装することをより困難にする可能性があります。事前にインストールされたアプリケーションによる視覚的二分法。 Android 4.xデバイスのユーザーは
Holo
テーマに使用されており、Google以外のプリインストールアプリの多くにはHolo
というテーマがあります。 Googleのアプリを使用するユーザーのために、彼らはマテリアルデザインに触れられており、これまでにも使用することができます。もちろん、Android 5.0+はAndroid搭載端末のエコシステムの一部として成長し続けています。しかし、マテリアルデザインアプリは、Samsung、LG、SONY、HTCなどのAndroid 4.xデバイスに搭載されているアプリに比べて外見が似ています。マテリアルデザインが何らかの形で優れているため、これらのデバイス上のユーザーとの違いに見合った価値があるかどうかは不明です。
これらのショーストッパーの問題はありますか?いいえ、appcompat-v7
を使用する場合は、すぐに進んでください。ただし、意識的に意図して作成する必要がありますappcompat-v7
が選択肢であることをご理解ください。
あなたはAPI 21から24に何も変わっていないと言っています(事実は変わっています)。 – ianhanniballake
私は変更があることを知っています。それは何と関係がありますか? –