「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バージョン | コードネーム | リリース年 |
|---|---|---|---|
| 35 | Android 15 | VanillaIceCream | 2024年 |
| 34 | Android 14 | UpsideDownCake | 2023年 |
| 33 | Android 13 | Tiramisu | 2022年 |
| 32 | Android 12L | Snow Cone v2 | 2021年 |
| 31 | Android 12 | Snow Cone | 2021年 |
| 30 | Android 11 | Red Velvet Cake | 2020年 |
| 29 | Android 10 | Quince Tart | 2019年 |
| 28 | Android 9 | Pie | 2018年 |
| 27 | Android 8.1 | Oreo | 2017年 |
| 26 | Android 8.0 | Oreo | 2017年 |
| 25 | Android 7.1 | Nougat | 2016年 |
| 24 | Android 7.0 | Nougat | 2016年 |
| 23 | Android 6.0 | Marshmallow | 2015年 |
| 22 | Android 5.1 | Lollipop | 2015年 |
| 21 | Android 5.0 | Lollipop | 2014年 |
ポイント:
- 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 21、targetSdkVersion 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の決め方
考慮すべきポイント:
- ターゲットユーザーのデバイス
- 日本国内向けなら、API Level 24(Android 7.0)以降が一般的
- グローバル向けなら、地域によっては古いバージョンも考慮
- 使いたい機能
- どうしても必要な機能がある場合、そのAPIレベル以降に設定
- 保守の負担
- 低すぎると、古いバージョンへの対応が大変
- 高すぎると、ユーザー層が限定される
推奨設定(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:現状確認
- 現在の
minSdkVersionとtargetSdkVersionを確認 - Google Playの要件と照らし合わせる
- ユーザーのAndroidバージョン分布を確認
ステップ2:移行計画の策定
- 目標とする
targetSdkVersionを決定(通常は最新) minSdkVersionは変更するか検討- スケジュールを立てる(テスト期間も含める)
ステップ3:変更内容の調査
- Googleの「移行ガイド」を確認
- Android Developersサイトに詳細なガイドあり
- 廃止された機能や変更された動作をリストアップ
- 必要なコード修正箇所を洗い出す
ステップ4:コードの修正
- 廃止された機能を新しいAPIに置き換え
- 権限の処理を最新の仕様に合わせる
- 新しいプライバシー要件に対応
ステップ5:テスト
- 対応する全Androidバージョンでテスト
- 主要な機能が正常に動作するか確認
- 権限の動作が正しいか確認
ステップ6:段階的リリース
- まずはベータ版としてリリース
- 一部のユーザーにテストしてもらう
- 問題なければ本番リリース
よくある質問
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レベルは少し複雑に感じるかもしれません。
でも、基本的な考え方を理解してしまえば、それほど難しくありません。
最も重要なのは:
- Google Playの要件を満たす
targetSdkVersionに設定すること - サポートするAndroidバージョンの範囲を適切に決めること
- APIレベルを上げる際は、しっかりテストすること
これらを押さえておけば、APIレベルで困ることはほとんどありません。
Google Playからの通知に驚くことなく、計画的にアプリを更新していきましょう!
参考リンク:
アプリ開発、頑張ってください!

コメント