APIレベル完全ガイド|Android開発で必須の基礎知識をわかりやすく解説

プログラミング・IT

「APIレベル34以降を対象にする必要があります」

Androidアプリ開発者なら、Google Playからこんな通知を受け取ったことがあるかもしれません。

「APIレベルって何?バージョンとは違うの?」と疑問に思う初心者の方も多いのではないでしょうか。

APIレベルは、Androidアプリ開発において非常に重要な概念です。これを理解していないと、アプリが公開できなくなったり、特定のデバイスで動作しなくなったりする可能性があります。

この記事では、APIレベルとは何か、Androidバージョンとの違い、開発時の注意点まで、初心者にもわかりやすく解説していきます。

スポンサーリンク

APIレベルとは?基本を理解しよう

APIレベルの定義

APIレベル(API Level) とは、Androidプラットフォームのバージョンごとに提供されるフレームワークAPIのリビジョンを一意に識別する整数値です。

少し難しい表現ですが、簡単に言うと:

「Androidの各バージョンに付けられた番号」

と考えてください。

例えば:

  • Android 14 → API Level 34
  • Android 13 → API Level 33
  • Android 12 → API Level 31・32
  • Android 11 → API Level 30

このように、AndroidのバージョンとAPIレベルは対応関係にあります。

なぜAPIレベルが必要なのか

「なぜAndroidのバージョン番号だけじゃダメなの?」と思いますよね。

APIレベルが必要な理由は、以下の通りです:

1. 開発者向けの明確な識別

ユーザー向けのバージョン表記(Android 14など)は、マーケティング的な名称です。

一方、APIレベルは開発者が「どの機能が使えるか」を正確に判断するための技術的な指標なんです。

2. 細かいバージョン管理

同じAndroid 12でも、API Level 31(Android 12.0)とAPI Level 32(Android 12L)という2つのAPIレベルが存在します。

このように、見た目のバージョンは同じでも、APIレベルで細かく区別されているんです。

3. プログラムでの判定のしやすさ

整数値なので、プログラム内で「もしAPIレベルが30以上なら〜」という条件分岐が簡単に書けます。

APIレベルとAndroidバージョンの関係

APIレベルとAndroidバージョンの対応表を見てみましょう。

主要なAPIレベル一覧

APIレベルAndroidバージョンコードネームリリース年
35Android 15VanillaIceCream2024年
34Android 14UpsideDownCake2023年
33Android 13Tiramisu2022年
32Android 12LSnow Cone v22021年
31Android 12Snow Cone2021年
30Android 11Red Velvet Cake2020年
29Android 10Quince Tart2019年
28Android 9Pie2018年
27Android 8.1Oreo2017年
26Android 8.0Oreo2017年
25Android 7.1Nougat2016年
24Android 7.0Nougat2016年
23Android 6.0Marshmallow2015年
22Android 5.1Lollipop2015年
21Android 5.0Lollipop2014年

ポイント:

  • APIレベルは連続した整数で増えていく
  • Androidバージョンとは1対1または1対多の関係
  • 古いバージョンほど、APIレベルとの対応が複雑

ユーザー向けとの開発者向けの違い

ユーザーが見るバージョン表記:

  • 「Android 14」
  • わかりやすく、マーケティングに適している
  • 一般ユーザー向け

開発者が使うAPIレベル:

  • 「API Level 34」
  • 技術的に正確
  • プログラムコードで使用
  • 開発者向け

この2つの違いを理解しておくことが、Android開発の第一歩です。

Android開発におけるAPIレベルの使い方

実際のAndroidアプリ開発で、APIレベルはどのように使われるのでしょうか。

1. 対応Androidバージョンの指定

Androidアプリを開発する際、必ず以下の3つのAPIレベルを指定します。

minSdkVersion(最小SDKバージョン)

アプリが動作する最も古いAndroidバージョンを指定します。

minSdkVersion 24  // Android 7.0以降で動作

これより古いAndroidデバイスでは、Google Playでアプリが表示されません。

targetSdkVersion(ターゲットSDKバージョン)

アプリが想定しているAndroidバージョンを指定します。

targetSdkVersion 34  // Android 14向けに最適化

これはGoogle Playの審査で非常に重要です(後述)。

compileSdkVersion(コンパイルSDKバージョン)

アプリをビルドする際に使用するSDKのバージョンを指定します。

compileSdkVersion 34  // Android 14 SDKでコンパイル

通常、targetSdkVersionと同じか、それ以上に設定します。

2. プログラム内での条件分岐

Androidバージョンによって利用できる機能が異なるため、コード内でAPIレベルをチェックします。

Javaの例:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    // Android 5.0 (API Level 21) 以降の処理
    // 新しい機能を使用
} else {
    // Android 5.0未満の処理
    // 古い方法で実装
}

Kotlinの例:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
    // Android 13 (API Level 33) 以降の処理
    requestPermission()
} else {
    // Android 13未満の処理
    legacyPermissionRequest()
}

このように、APIレベルで分岐することで、新旧のAndroidバージョンで異なる処理を実行できます。

3. 機能の利用可否の確認

新しいAPIレベルで追加された機能は、古いバージョンでは使えません。

例えば、Android 13(API Level 33)で追加された「通知の実行時権限」は、API Level 32以下では存在しません。

そのため、新機能を使う際は必ずAPIレベルをチェックする必要があります。

Google Playの対象APIレベル要件

最近のAndroid開発で最も注意すべきなのが、Google Playの「対象APIレベル要件」です。

最新の要件(2025年1月時点)

Google Playでアプリを公開・更新するには、以下の要件を満たす必要があります。

新規アプリとアプリアップデート:

  • Android 15(API Level 35)以降を対象にする必要があります(2025年8月31日以降)
  • ただし、Wear OS、Android TV、Android Automotiveアプリは別の要件あり

既存アプリ:

  • Android 14(API Level 34)以降を対象にしていないと、新しいAndroidデバイスのユーザーがアプリを見つけられなくなります

これらの要件を満たさないと:

  • 新規アプリの公開ができない
  • アプリのアップデートができない
  • 新しいAndroid OSを搭載したデバイスでアプリが表示されない

なぜこんな要件があるのか

Google Playがこのような要件を設けている理由は:

1. セキュリティの向上

新しいAPIレベルには、最新のセキュリティ対策が組み込まれています。

古いAPIレベルを使い続けると、セキュリティの脆弱性が残ったままになります。

2. プライバシー保護の強化

Androidバージョンが上がるごとに、プライバシー保護機能が強化されています。

例えば、位置情報や通知へのアクセスが厳格化されました。

3. パフォーマンスの向上

新しいAPIレベルでは、バッテリー消費の最適化やアプリの起動速度改善などが行われています。

4. ユーザー体験の統一

最新のAndroidデバイスで古いアプリが動作しないという問題を防ぐためです。

期間延長のリクエスト

アプリの更新に時間が必要な場合、Google Playに期間延長をリクエストできます。

ただし、これは一時的な措置であり、最終的には要件を満たす必要があります。

APIレベルを上げる際の注意点

「じゃあ、とりあえずAPIレベルを最新にすればいいんでしょ?」

実は、そう単純ではありません。APIレベルを上げる際には、いくつかの注意点があります。

1. 互換性の確認が必要

新しいAPIレベルでは、古い機能が廃止(deprecated)されたり、動作が変更されたりすることがあります。

例:

  • Android 11(API Level 30)から、ストレージのアクセス方法が大幅に変更
  • Android 13(API Level 33)から、通知の表示に実行時権限が必要

これらの変更に対応するため、コードの修正が必要になります。

2. 既存ユーザーへの影響を考慮

minSdkVersionを上げると、古いAndroidデバイスを使っているユーザーがアプリを使えなくなります。

例えば、minSdkVersionを24(Android 7.0)から28(Android 9.0)に上げた場合:

  • Android 7.0〜8.1のユーザーはアプリを使えなくなる
  • そのユーザー層がどれくらいいるか、事前に確認が必要

Google Playのダッシュボードで、自分のアプリを使っているユーザーのAndroidバージョン分布を確認できます。

3. テストの負荷が増える

APIレベルの範囲が広いほど、テストすべきAndroidバージョンが増えます。

例えば、minSdkVersion 21targetSdkVersion 34の場合:

  • Android 5.0からAndroid 14までの全バージョンでテストが理想的
  • 現実的には、主要なバージョンに絞ってテスト

個人開発者や小規模チームにとって、これは大きな負担になります。

4. 新機能の利用は条件付き

targetSdkVersionを上げれば新機能が使えますが、minSdkVersionが低い場合は条件分岐が必要です。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
    // Android 13以降の新機能を使用
    useNewFeature()
} else {
    // Android 13未満では従来の方法で代替
    useLegacyFeature()
}

このようなコードが増えると、保守が大変になります。

APIレベル選択のベストプラクティス

実際のアプリ開発では、どのようにAPIレベルを設定すべきでしょうか。

minSdkVersionの決め方

考慮すべきポイント:

  1. ターゲットユーザーのデバイス
  • 日本国内向けなら、API Level 24(Android 7.0)以降が一般的
  • グローバル向けなら、地域によっては古いバージョンも考慮
  1. 使いたい機能
  • どうしても必要な機能がある場合、そのAPIレベル以降に設定
  1. 保守の負担
  • 低すぎると、古いバージョンへの対応が大変
  • 高すぎると、ユーザー層が限定される

推奨設定(2025年時点):

minSdkVersion 24  // Android 7.0
// または
minSdkVersion 26  // Android 8.0

これくらいであれば、ほとんどのユーザーをカバーしつつ、古すぎる対応を避けられます。

targetSdkVersionの決め方

基本ルール:

Google Playの要件を満たす、最新のAPIレベルに設定しましょう。

targetSdkVersion 34  // 2025年1月時点

理由:

  • Google Playで公開・更新するために必須
  • 最新のセキュリティ・プライバシー機能が適用される
  • ユーザーに安全なアプリを提供できる

ただし、targetSdkVersionを上げる際は、十分なテストが必要です。

compileSdkVersionの決め方

基本ルール:

targetSdkVersionと同じか、それ以上に設定します。

compileSdkVersion 34
targetSdkVersion 34
minSdkVersion 24

通常は、targetSdkVersionと同じ値にしておけば問題ありません。

APIレベルの移行ガイド

既存アプリのAPIレベルを上げる際の手順を解説します。

ステップ1:現状確認

  1. 現在のminSdkVersiontargetSdkVersionを確認
  2. Google Playの要件と照らし合わせる
  3. ユーザーのAndroidバージョン分布を確認

ステップ2:移行計画の策定

  1. 目標とするtargetSdkVersionを決定(通常は最新)
  2. minSdkVersionは変更するか検討
  3. スケジュールを立てる(テスト期間も含める)

ステップ3:変更内容の調査

  1. Googleの「移行ガイド」を確認
  • Android Developersサイトに詳細なガイドあり
  1. 廃止された機能や変更された動作をリストアップ
  2. 必要なコード修正箇所を洗い出す

ステップ4:コードの修正

  1. 廃止された機能を新しいAPIに置き換え
  2. 権限の処理を最新の仕様に合わせる
  3. 新しいプライバシー要件に対応

ステップ5:テスト

  1. 対応する全Androidバージョンでテスト
  2. 主要な機能が正常に動作するか確認
  3. 権限の動作が正しいか確認

ステップ6:段階的リリース

  1. まずはベータ版としてリリース
  2. 一部のユーザーにテストしてもらう
  3. 問題なければ本番リリース

よくある質問

APIレベルを上げないとどうなる?

Google Playの要件を満たさない場合:

  • 新規アプリの公開ができない
  • アプリのアップデートができない
  • 新しいAndroid OSのデバイスでアプリが表示されなくなる
  • セキュリティリスクが高まる

minSdkVersionとtargetSdkVersionの違いは?

  • minSdkVersion:アプリが動作する最も古いAndroidバージョン
  • targetSdkVersion:アプリが想定しているAndroidバージョン(Google Play要件に関係)

両方とも重要ですが、役割が異なります。

古いAPIレベルをサポートし続けるべき?

メリット:

  • より多くのユーザーにアプリを届けられる

デメリット:

  • 保守の負担が増える
  • 新機能を活用しにくい
  • セキュリティリスクが高まる

推奨:

ユーザーの分布を見て、1〜2%以下のシェアしかないバージョンはサポートを終了するのが一般的です。

APIレベルとSDKの違いは?

  • APIレベル:Androidバージョンを識別する番号
  • SDK:アプリ開発に必要なツールやライブラリのセット

SDKには特定のAPIレベルが含まれています。

どのくらいの頻度でAPIレベルを更新すべき?

推奨:

  • 少なくとも年に1回はtargetSdkVersionを更新
  • Google Playの要件変更に合わせて対応
  • メジャーなAndroidバージョンがリリースされたら検討

まとめ

APIレベルについて、理解が深まったでしょうか?

この記事のポイントをおさらいすると:

  • APIレベルは、Androidバージョンを識別する整数値
  • Androidバージョンとは密接に関連しているが、別物
  • Google Playの要件を満たすため、定期的にtargetSdkVersionを更新する必要がある
  • minSdkVersionは、ユーザー層と保守負担のバランスを考えて設定
  • APIレベルの移行は計画的に、十分なテストを行う

Android開発を始めたばかりの方にとって、APIレベルは少し複雑に感じるかもしれません。

でも、基本的な考え方を理解してしまえば、それほど難しくありません。

最も重要なのは:

  1. Google Playの要件を満たすtargetSdkVersionに設定すること
  2. サポートするAndroidバージョンの範囲を適切に決めること
  3. APIレベルを上げる際は、しっかりテストすること

これらを押さえておけば、APIレベルで困ることはほとんどありません。

Google Playからの通知に驚くことなく、計画的にアプリを更新していきましょう!


参考リンク:

アプリ開発、頑張ってください!

コメント

タイトルとURLをコピーしました