Android 11 にアプリを移行する

Google では Android をリリースするたびに、Android の利便性、安全性、パフォーマンスを高めることを目的とした新機能や動作変更を導入しています。多くの場合、アプリはそのままでも想定どおりに動作しますが、プラットフォームの変更に合わせてアプリに変更を加えることが必要になる場合もあります。

AOSP(Android オープンソース プロジェクト)にソースコードがリリースされると、ユーザーはすぐに新しいプラットフォームを受け取れるので、アプリを準備しておくことが重要です。アプリがユーザーの期待どおりに動作し、新しいプラットフォームを最大限に活用するために新しい機能と API を利用するのが理想的です。

このドキュメントでは、一般的な開発フェーズとテストフェーズの概要を説明します。これにより、プラットフォームのリリース スケジュールに合わせて準備計画を立て、Android 11 のユーザーに優れたエクスペリエンスを提供できます。

一般的な移行には、同時に進行できる次の 2 つの段階があります。

  • アプリの互換性を確保する(Android 11 の最終リリースまでに)
  • 新しいプラットフォームの機能と API をターゲットに設定する(最終リリース後、できるだけ早く)

このページでは、各段階の一般的な手順について概説します。準備ができたら、Android 11 を入手するをご覧ください。

Android 11 との互換性を確保する

既存のアプリの機能を Android 11 でテストすることは、Android の最新版にアップデートするユーザーに優れたエクスペリエンスを提供するために重要です。プラットフォームの変更の一部がアプリの動作に影響する可能性があるため、早い段階で徹底的にテストしてから、アプリに必要な調整を行うことが重要です。

通常は、アプリの targetSdkVersion は変更せずに、アプリを調整して、アップデートを公開できます。同様に、新しい API を使用したり、アプリの compileSdkVersion を変更したりする必要はありませんが、これはアプリのビルド方法や使用しているプラットフォームの機能によって異なります。以下のセクションでは、その手順の概要を示します。

始める前に、targetSdkVersion を変更しない場合でも、アプリに影響する可能性がある動作変更について十分に理解してください。

互換性テストを実施する

Android 11 との互換性テストの大部分は、アプリのリリース準備時に行うテストの種類と似ています。ここで、アプリの中核品質ガイドラインテストに関するベスト プラクティスを確認することをおすすめします。

Android 11 を実行しているデバイスに、現在公開しているアプリをインストールして、すべてのフローと機能に問題がないか確認します。テストの対象を絞り込めるように、アプリの機能に影響を与える、またはアプリのクラッシュを引き起こす可能性がある Android 11 で導入された動作変更を確認します。特に、プライバシーに関する重要な変更を確認し、変更に対応するために実装する修正をテストしてください。

また、制限対象となる非 SDK インターフェースを使用しているかどうかをテストし、使用している場合は、それに代わる同等の公開 SDK または NDK に移行します。このようなアクセスを示す logcat 警告に注意し、StrictMode メソッド detectNonSdkApiUsage() を使用して、プログラムによって特定します。

最後に、アプリ内のライブラリと SDK を完全にテストして、Android 11 で想定どおりに動作することを確認し、プライバシー、パフォーマンス、UX、データ処理、権限に関するベスト プラクティスに従ってください。問題が見つかった場合は、SDK を最新バージョンにアップデートするか、SDK のデベロッパーにお問い合わせください。

テストが完了し、変更を加えたら、互換性のあるアプリを直ちに公開することをおすすめします。これにより、ユーザーはアプリを早期にテストでき、Android 11 にアップデートするユーザーにスムーズに移行できます。

アプリのターゲティングを更新し、新しい API でビルドする

前述のように互換性のあるバージョンのアプリを公開したら、次のステップとして、targetSdkVersion を更新し、Android 11 の新しい API と機能を利用することにより、Android 11 の完全なサポートを追加します。新しいプラットフォームをターゲットに設定するための Google Play の要件を念頭に置き、準備が整ったらすぐに登録してください。

Android 11 の完全なサポートに向けて作業を進める場合は、最初に Android 11 をターゲットとするアプリに適用される動作の変更を確認することをおすすめします。これらのターゲット固有の動作変更により、機能的な問題が発生する可能性があります。そのため、対処が必要になることがあります。場合によっては大規模な開発が必要になるため、早期に学習することをおすすめします。影響を評価するために、互換性切り替えを使用して、選択した変更を有効にして現在のアプリをテストすることもできます。

Android 11 を完全にサポートする手順は次のとおりです。

SDK を入手し、ターゲット設定を変更し、新しい API を使ってビルドする

Android 11 を完全にサポートするには、まず Android 11 SDK(およびその他必要なツール)を Android Studio にダウンロードします。 次に、アプリの targetSdkVersioncompileSdkVersion"30" に変更し、アプリを再コンパイルします。詳しくは、セットアップ ガイドをご覧ください。

Android 11 アプリをテストする

アプリをコンパイルして Android 11 搭載デバイスにインストールしたら、Android 11 をターゲットとする場合にアプリが正しく動作することを確認します。一部の動作変更は、アプリが新しいプラットフォームをターゲットにしている場合にのみ適用されるため、開始する前にそれらの変更を確認する必要があります。

基本的な互換性テストを行う場合と同様に、すべてのフローと機能を実行して問題を探します。Android 11 をターゲットとするアプリに影響する動作変更に重点を置いてテストを進めます。特に、プライバシーに関する変更を確認し、変更に対応するために実装する修正をテストしてください。この段階で、アプリの中核品質ガイドラインテストに関するベスト プラクティスに照らしてアプリをチェックすることをおすすめします。

該当する可能性がある制限付きの非 SDK インターフェースの使用を確認し、テストしてください。このようなアクセスを示す logcat 警告に注意し、StrictMode メソッド detectNonSdkApiUsage() を使用して、プログラムによって特定します。

最後に、アプリ内のライブラリと SDK を完全にテストして、Android 11 で想定どおりに動作することを確認し、プライバシー、パフォーマンス、UX、データ処理、権限に関するベスト プラクティスに従ってください。問題が見つかった場合は、SDK を最新バージョンにアップデートするか、SDK のデベロッパーにお問い合わせください。

アプリの互換性切り替えを使用してテストする

Android 11 には、ターゲットを絞った動作変更でアプリを簡単にテストできる、デベロッパー向けの新機能が導入されています。デバッグ可能なアプリでは、この切り替えによって次のことが可能になります。

  • アプリの targetSdkVersion を実際には変更せずに、ターゲット固有の変更をテストする。切り替えを使用して、特定のターゲット固有の動作変更を強制的に有効にし、既存のアプリに対する影響を評価できます。
  • 特定の変更にテストを集中させる。切り替えを使用することで、テスト対象以外のターゲット固有の変更をすべて無効にできます。これにより、一度にすべてのターゲット固有の変更に対処する必要がなくなります。
  • adb を介して切り替えを管理する。adb コマンドを使用して、自動テスト環境で切り替え可能な変更を有効または無効にすることができます。
  • 標準の変更 ID を使用して迅速にデバッグする。切り替え可能な変更にはそれぞれ一意の ID と名前が付けられており、ログ出力内の根本原因をすばやくデバッグできます。

アプリのターゲット設定を変更する場合や、Android 11 のサポートに向けて開発を行っている場合は、この切り替え機能が役立ちます。詳細については、対応するドキュメントをご覧ください。