スポンサーリンク

【Android】SdkVersion について初心者でも解りやすく解説

Android 開発にて、新規、既存のコンパルSDKの指定で迷います。

※ Android Studio では、「build.gradle」
※ Eclipse、他では、「AndroidManifest」

  • compileSdkVersion
  • buildToolsVersion
  • targetSdkVersion
  • minSdkVersion
  • maxSdkVersion

ここでは開発時に迷うバージョン指定の指針を解説します。

アプリのアップデート時には設定を見直して可能な限り最新版を指定することをオススメします。

ただし、変更後はコアな部分なので全体の確認テストも忘れなく実施しましょう。

また、ツールにバグが潜んでいることもありますので油断は禁物です。

OSとAPIのバージョンの比較表

【Kotlin】sdk のバージョン毎に処理を条件分岐する方法
Android 開発時にOSのバージョンによってメリットの書き方が変わったり、APIが非推奨(Deprecated)になることがあります。(is Deprecated as of api) Androidは古いバージョンを利用されてい...
スポンサーリンク

compileSdkVersion

APK作成時、コンパイルで使用するSDKのバージョンになります。

・ベータ版ではない最新のバージョンを常に指定しましょう。

・最新のコンパイラは最新OSに最適化されてコンパイルされます。また、不具合等も修正されています。ただし、コンパイラの不具合に合うこともありますので変更時に動作確認はしましょう。

・このバージョンより上のAPIのメソッドは利用できません。最新の機能を利用時は上げる必要があります。(「minSdkVersion」が低い場合はバージョンで処理を切り分ける必要があります。)

・こちらのバージョンを上げた場合、Gradleのバージョンを上げる必要が発生することもあります。これに伴う修正が発生することもあります。

buildToolsVersion

ビルド時に使うツールのバージョン

・ビルド時のツールなので常に最新版をオススメします。

・「compileSdkVersion」を上げた場合はこちらのバージョンも上げる必要が発生する場合もあります。

・Android Studio 3 以降は記述しないと「compileSdkVersion」に合った最新バージョンが適用されます。ただし勝手にあがると少々不安なので指定することをオススメします。この環境で動作保証したい場合は特に指定することをオススメします。

targetSdkVersion

どのAPIの仕様(振る舞い、権限、プッシュの仕様など。UIの見た目ステータスバー、メニューキー、テーマなど)でアプリを動作させるかを指定します。

Androidは日々進化しています。

新しいOSがリリース時に見た目や仕様が変わることがあります。

開発者は「新しい仕様で作成するか?」「古い仕様と見た目で開発するか?」をこのバージョンで指定できます。

つまり、古いバージョンを指定した場合、古い仕様と振る舞いが適用され、最新のOSでも古い仕様と振る舞いで動作させることができます。

※ Google Play の規約変更に伴い、新規は2018年8月、更新は2018年11月移行「26」以上でないと公開できなくなります。今から開発する場合は「26」以上で可能な限りの最新を指定しての開発をオススメします。また、既にリリース済みのアプリは早めに対応をオススメします。

・Android はバージョンによって動きが異なります。どのバージョンの仕様と見た目で動かすかを指定します。

・バージョンによってアプリケーションの振る舞いが変わります。指定したOSの仕様が適用されるためです。(権限の仕様、プッシュの仕様、など)

・UIの見た目が変わります。OSによって見た目、基本的なテーマが変わるためです。(アクションバー、メニューキー、基本UI)

・低いバージョンを指定することで最新のOSのであっても昔と同じ振る舞いをさせることができます。

・これからリリースするアプリだが昔のOSの動きを選択したい場合、低いバージョンを指定します。

・「targetSdkVersion」より「minSdkVersion」が低い場合、「targetSdkVersion」以降で利用できるメソッドはバージョンで分岐のプログラミングが必要です。

※ 今後のことを考えると特別理由がない限り最新のバージョンを指定しましょう。Google Play の規約の変更で、毎年「targetSdkVersion」は1年以内にリリースされたバージョンでないと公開できなくすると明言しています。

minSdkVersion

インストールできる端末の最低のバージョン

・基本的に指定します。あまりにも古い端末の場合、端末の性能が悪くユーザビリティが低下します。可能な限りユーザーが納得する端末以降のバージョンを指定しましょう。

・新しいAPIが中心のアプリの場合古いOSでは動作しません。動作するOSのAPI以上を指定しましょう。

・Google Play Store にてこれ未満のバージョンの端末の場合、表示されません。

・API 25 でリリースされた機能が必須のアプリの場合は「25」を指定します。

※ あまり古い端末も含めてしまうと動作確認の時間や、プログラミングの工数が増えます。費用対効果を考え3年とか5年とかをプロジェクト内で検討し可能な限り古い端末にインストールできないようにすることも必要です。

maxSdkVersion

インストールできる端末の最高のバージョン

・基本的に新しいOSの端末は古いSDKでコンパイルされたAPKも問題なく動作します。

※ 特別な理由がない限り指定することはないでしょう。不必要な場合、記述を省略します。