Android における「アプリの互換性」とは、アプリが特定のバージョンのプラットフォーム(通常は最新バージョン)で正常に動作することを意味します。Android では、リリースごとにプライバシーとセキュリティを向上させる重要な変更が行われています。また、OS 全体のユーザー エクスペリエンス全般に影響する変更も実装されています。これらの変更がアプリに影響する可能性があるため、各リリース バージョンに含まれる動作変更を確認してテストし、ユーザーに対して互換性アップデートを公開することが重要です。
アプリの互換性が重要である理由
ユーザーは、新しいデバイスを購入した場合や、使用中のデバイスにアップデートをインストールした場合など、Android の最新版にアップデートすると、すぐにアプリの互換性の影響を受けることになります。ユーザーは Android の最新バージョンを楽しみにしており、お気に入りのアプリで Android を体験したいと考えています。アプリが正しく動作しなかった場合、ユーザーとデベロッパーの双方にとって大きな問題となります。
プラットフォームの動作変更の種類
アプリを新しいプラットフォーム バージョンで実行する場合、アプリに影響する変更には次の 2 種類があります。
すべてのアプリ向けの変更
アプリの targetSdkVersion
にかかわらず、そのバージョンの Android で実行されるすべてのアプリに影響する変更です。
新しい Android バージョンのデベロッパー プレビューとベータ版リリース中に、これらの変更に対するアプリの互換性を事前にテストする必要があります。Google Pixel やその他のデバイスの更新は、新しい Android バージョンが Android オープンソース プロジェクト(AOSP)の最新リリースに到達するとすぐに開始されます。そのため、これらのテストを事前に行うことにより、ユーザーが対象デバイスの最新の Android バージョンにシームレスに移行できるようになります。
ターゲット固有の変更
特定の Android バージョンをターゲットとするアプリにのみ影響する変更です。
これらの変更については、最新の安定版 API をターゲットとする際に互換性テストを行う必要があります(現在は Android 15(API レベル 35))。新しいバージョンの Android をすぐにターゲットにする予定がなくても、このような変更に対処するには膨大な開発が必要となる可能性があります。これらの変更については、予備テストを行い、フィードバックを提供できるように、できるだけ早く(理想的には新しい Android バージョンのデベロッパー プレビューとベータ版リリースの間に)把握する必要があります。
互換性フレームワーク ツール
互換性をテストできるように、互換性フレームワークの各リリースには可能な限りの互換性を破る変更が含まれています。互換性フレームワークに変更を含めると、切り替えが可能になり、開発者向けオプションや ADB とは別に変更を強制的に有効または無効にできます。互換性フレームワークを使用する場合、アプリの targetSdkVersion
を変更したり、基本的なテストのためにアプリを再コンパイルする必要はありません。
詳細については、アプリでのプラットフォームの動作変更のテストとデバッグをご覧ください。
非 SDK インターフェースの制限
非 SDK API からデベロッパーを段階的に移行する継続的な取り組みの一環として、各 Android リリースで制限付きの非 SDK インターフェースのリストを更新しています。いつもお伝えしていることですが、フィードバックや公開 API やその他のリクエストがありましたら、ぜひお願いします。
プラットフォーム リリース
Android の最新リリースの詳細をご確認ください。
- Android 15(API レベル 35)
- Android 14(API レベル 34)
- Android 13(API レベル 33)
- Android 12(API レベル 31、32)
- Android 11(API レベル 30)