アプリの中核品質に関するガイドライン

高品質なアプリの基盤を構築するには、アプリの中核品質に関するガイドラインに準拠してください。

このガイドラインでは、すべてのアプリが満たすべき最低限の品質を定義しています。

アダプティブ アプリの品質

Android アプリは、コンパクトなスマートフォンからタブレット、折りたたみ式デバイス、デスクトップ、コネクテッド ディスプレイ、車載インフォテインメント システム、テレビ、XR まで、さまざまなデバイスで動作します。分割画面やデスクトップ ウィンドウなどのウィンドウ モードでは、アプリを画面のサイズ変更可能な部分で実行できます。

アダプティブ アプリの品質に関するガイドラインとアプリの中核品質に関するガイドラインに沿って、次のことを行います。

  • すべてのフォーム ファクタとディスプレイ サイズに最適化されたアプリを作成する
  • Google Play の掲載情報と検索でアプリを上位に表示する
  • より多くのユーザーを獲得し、ユーザー維持率を向上させる

ガイドライン

以下のコア ガイドラインは、基本的な高品質アプリを構築するのに役立ちます。

ユーザー エクスペリエンス

標準的な Android のビジュアル デザインとインタラクション パターンは、一貫性のある直感的なユーザー エクスペリエンスを提供します。

可能な場合は、Android プラットフォーム コンポーネントの代わりにマテリアル デザイン コンポーネントを使用して、アプリのユーザー インターフェースを作成します。マテリアル デザインは、Android の最新のルック アンド フィールを提供するとともに、Android のバージョン間で UI の一貫性を確保します。

ユーザビリティ

ID テスト 説明
Consistent_UX T-Consistent_UX,
T-SD_Card
アプリは、すべてのフォーム ファクタのすべてのアプリ ユースケースで一貫したユーザー エクスペリエンスを提供します。
App_Switcher T-App_Switcher、
T-SD_Card
フォーカスが別のアプリに切り替わると、アプリはバックグラウンドに移行します。最近使用したアプリアプリ スイッチャーから再開すると、アプリはフォアグラウンドに戻ります。
Sleep_Resume T-Sleep_Resume、
T-SD_Card
アプリがフォアグラウンド アプリの場合、デバイスがスリープ状態になると一時停止し、デバイスが復帰すると再開します。
Lock_Resume T-Lock_Resume,
T-SD_Card
アプリがフォアグラウンド アプリの場合、デバイスがロックされると一時停止し、デバイスのロックが解除されると再開します。

ユーザー インターフェース

ID テスト 説明
Display_State_Parity T-Orientation_Transitions

ディスプレイの向きと折りたたみ状態が、基本的に同じ機能と動作を公開し、同等の機能を維持している。

Fullscreen_Display T-Orientation_Transitions

アプリは、縦向きと横向きの両方でアプリ ウィンドウ全体に表示され、デバイスの折りたたみや展開などの構成変更によってレターボックス表示されることはありません。

画面の形状について若干のばらつきを補正するための若干のレターボックス表示は認められます。

Orientation_Transitions T-Orientation_Transitions ディスプレイの向きやデバイスの折りたたみ / 展開の急な変化に適切に対応し、ディスプレイのレンダリングの問題が発生せず、状態が失われない。

画質

ID テスト 説明
Graphic_Quality T-Graphic_Quality

目立った歪み、ぼやけ、粗さを生じさせずに、グラフィックス、テキスト、画像、その他の UI 要素を表示します。

  • 可能であればベクター型ドローアブルを使用している
  • 対象となるあらゆる画面サイズやフォーム ファクタ向けに高品質のグラフィックを使用している
  • メニューやボタンなどの UI 要素の縁で、エイリアシングが一切生じない
Line_Length T-Line_Length サポートしている各言語で、行の長さを 45 ~ 75 文字(スペースを含む)に制限することで、テキストとテキスト ブロックの読みやすさを確保します。
Theme_Support T-Theme_Support アプリのコンテンツ、アプリがアクセスするすべてのウェブ コンテンツは、ライトモードとダークモードの両方に対応している。
ID テスト 説明
Back_Button_Nav T-Back_Nav アプリは標準的な戻るボタンのナビゲーションをサポートし、画面上のカスタムの戻るボタン プロンプトは一切使用しません。
Back_Gesture_Nav T-Back_Nav 前の画面 / ホーム画面に戻るためのジェスチャー ナビゲーションをサポートします。
State_Preservation T-State_Preservation、
T-Back_Nav

アプリは、フォアグラウンドから離れる際にユーザーやアプリの状態を保存し、「戻る」ナビゲーションや他の状態変化により誤ってデータが消失するのを防ぐ。

フォアグラウンドに戻る際、保存された状態や、保留されていたステートフル トランザクションを復元する。たとえば、編集可能なフィールドに対する変更、ゲームの進捗、メニュー、動画、アプリのその他のセクションなどです。

  • 最近使用したアプリのアプリ スイッチャーからアプリを再開すると、アプリを最後に使用したときとまったく同じ状態に戻ります。
  • デバイスがスリープ(ロック)状態から復帰した後にアプリを再開すると、アプリを最後に使用したときとまったく同じ状態に戻ります。
  • ホーム画面やすべてのアプリ画面からアプリを再起動すると、アプリを最後に使用したときからの経過時間に応じて、次のいずれかが行われる必要があります。
    • アプリを最後に使用してから短い時間(数分)しか経過していない場合、可能な限り前回に近い状態を復元する。
    • アプリを最後に使用してからそれ以上の時間が経過している場合、可能な限り前回に近い状態を復元するか、ホーム画面またはその他のデフォルトの状態から起動する。

通知

ID テスト 説明
Notification_Quality T-Notification_Quality

通知では、アプリに関連する情報が提供されます。

  • 通知は相互プロモーションや別の製品の宣伝を目的として使用してはならず、このような使用は Play ストアで固く禁止されている。
  • 1 つのチャンネルからすべての通知を配信するのではなく、ベスト プラクティスに従って通知チャンネルを適切に定義する。
  • 適切な通知の優先度を選択する。
  • 可能な場合は、複数の通知を 1 つの通知グループにスタックします。
  • 必要に応じて、通知のタイムアウトを設定する。
  • 通知は進行中のイベント(音楽の再生や通話など)に関連する場合のみ継続できる。詳細については、機能セクションをご覧ください。
Conversation_Quality T-Notification_Quality

メッセージ アプリ、ソーシャル アプリ、会話の場合:

ユーザー補助

ID テスト 説明
Touch_Target_Size T-Touch_Target_Size タップ ターゲットが 48 dp 以上である。マテリアル デザインのターゲット サイズのガイドラインをご覧ください。
Visual_Contrast T-Visual_Contrast

アプリのテキストとフォアグラウンドのコンテンツは、アプリの背景に対して次のコントラスト比を維持します。

  • 大きい文字サイズ / グラフィックの場合は 3:1
  • 小さい文字サイズ(18 pt 未満、太字の場合は 14 pt 未満)の場合は 4.5:1

詳細については、色とコントラストをご覧ください。

Content_Description T-Content_Description contentDescription を使用して、TextView 以外の各 UI 要素を記述する。

機能

アプリは、以下の機能動作を実装する必要があります。

音声

ID テスト 説明
Audio_Playback_Start T-Audio_Playback_Start

ユーザーが音声の再生を開始したら、アプリは 1 秒以内に次のいずれかを行う必要があります。

  • 音声の再生を開始する
  • 音声データの準備中であることを示すインジケーターを表示する
Audio_Focus_Request T-Audio_Focus_Request アプリは、音声の再生が開始されたときに音声フォーカスをリクエストし、再生が停止したときに音声フォーカスを放棄する必要があります。
Audio_Focus_Change T-Audio_Focus_Change アプリは、他のアプリからの音声フォーカス リクエストを処理する必要があります。(例: 別のアプリで音声が再生されたときに再生音量を小さくする)。
Audio_Playback_Background T-Audio_Playback_Background

アプリはバックグラウンド再生をサポートする必要があります。

アプリが表示されなくなったときにシステムがアプリプロセスを強制終了しないように、アプリはフォアグラウンド サービスを使用する必要があります。また、アプリが実行中であることをユーザーに知らせるために、ステータスバーまたはロック画面に、永続的で閉じることができない通知を表示する必要があります。

ユーザーは、通知やロック画面のコントロール、または接続されたアクセサリーのコントロールを使用して再生を操作できる必要があります。

Audio_Notification_Style T-Audio_Notification_Style バックグラウンドで音声を再生する場合、アプリは MediaStyle でスタイル設定された通知を作成する必要があります。
Audio_Playback_Resume T-Audio_Playback_Resume アプリがバックグラウンドにあり、音声が一時停止している場合、アプリがフォアグラウンドに戻ったら、音声を再開するか、再生が一時停止状態であることをユーザーに示す必要があります。

動画

ID テスト 説明
Video_PiP T-Video_PiP 動画を再生する場合、ピクチャー イン ピクチャーでの再生をサポートする必要があります。
Video_Encoding T-Video_Encoding アプリが動画をエンコードする場合は、HEVC 動画圧縮標準を使用する必要があります。
Video_Playback_Background T-Video_Playback_Background

アプリが最前面に表示されていない場合(アプリ ウィンドウが次の状態の場合を含む)に、動画のバックグラウンド再生をサポートしている。

  • 最小化
  • 他のウィンドウまたはシステム UI(通知シェード、ホーム画面、ロック画面など)の背後にある
  • 表示されているデスクトップ画面の外

共有

ID テスト 説明
System_Sharesheet T-System_Sharesheet アプリがコンテンツを共有するときは、Android Sharesheet を使用する。アプリは、カスタム ソリューションでは利用できないターゲットを提案できます。

バックグラウンド サービス

ID テスト 説明
Background_Service_Optimization T-Background_Service_Optimization

ユーザーのデバイスがスムーズに動作するよう、バックグラウンドで必要以上に長時間にわたってサービスが実行されない。

注: システムによってバックグラウンド サービスに関するさまざまな制限が適用されます。

バックグラウンド サービスを不適切に使用している例を以下に示します。

  • 通知用のネットワーク接続を維持する
  • Bluetooth 接続を維持する
  • GPS をオンのままにする

詳細については、バックグラウンド タスクの概要をご覧ください。

パフォーマンスと安定性

アプリは、最適なパフォーマンス、安定性、互換性、応答性を提供する必要があります。

パフォーマンス

ID テスト 説明
App_Startup_Time T-App_Startup_Time 迅速に読み込みます。読み込み時間が 2 秒を超える場合は、ユーザーに対するフィードバック(進行状況インジケーターや同様の合図)を画面に表示します。
Rendering_Performance T-Rendering_Performance アプリは 16 ミリ秒(またはそれ以下)ごとにフレームをレンダリングし、1 秒あたり 60 フレーム以上を表示します。レンダリングの問題については、遅いレンダリングをご覧ください。
StrictMode_Compliance T-StrictMode_Compliance StrictMode が有効になっている場合(StrictMode のテストのセクションを参照)、アプリのテスト時に赤色のフラッシュ(StrictMode からのパフォーマンス警告)は表示されません。

安定性

ID テスト 説明
Stability_ANR T-Stability_ANR アプリがクラッシュしたり、UI スレッドをブロックして ANR(アプリケーション応答なし)エラーを引き起こしたりしません。Google Play のリリース前レポートを利用し、安定性に関する潜在的な問題を特定してください。デプロイ後は、Google Play Console の Android Vitals ページをモニタリングします。

SDK

ID テスト 説明
Android_Platform_Compatibility T-Android_Platform_Compatibility アプリが、クラッシュしたり、コア機能に大きな影響を与えたりすることなく、Android プラットフォームの最新の公開バージョンで動作する。
Target_SDK_Version T-Target_SDK_Version アプリのモジュール build.gradle ファイルで targetSdk 値を設定して、Google Play の要件を満たすために必要な最新の Android SDK をターゲットに設定する。
Compile_SDK_Version T-Target_SDK_Version アプリのモジュール build.gradle ファイルで compileSdk 値を設定して、最新の Android SDK でアプリを構築している。
SDK_Maintenance T-SDK_Maintenance、
T-Non_SDK_Interfaces

使用されている Google またはサードパーティの SDK がすべて最新である。これらの SDK の改善(安定性、互換性、セキュリティなど)が、適切なタイミングでユーザーに提供される。

Google SDK では、利用できる場合には Google Play 開発者サービスの SDK を使用する。これらの SDK には下位互換性があり、自動更新を受け取れ、アプリのパッケージ サイズを削減して、オンデバイスのリソースを効率的に使用できる。

Non_SDK_Interfaces T-Non_SDK_Interfaces アプリは非 SDK インターフェースを使用していない。
Production_Build_Quality T-Production_Build_Quality 製品版アプリにはデバッグ ライブラリが含まれていない。アプリにデバッグ ライブラリが含まれていると、パフォーマンスやセキュリティの問題を引き起こす可能性がある。

電池

ID テスト 説明
Power_Management T-Power_Management

アプリが電源管理機能の Doze とアプリ スタンバイを適切にサポートしている。

アプリは、電源メンテナンスの免除をリクエストできます。Doze とアプリ スタンバイ用に最適化するのその他のユースケースのサポートをご覧ください。

プライバシーとセキュリティ

アプリがユーザーデータと個人情報を安全に処理し、適切なレベルの権限を提供している。

Google Play ストアで公開されるアプリは、ユーザーのプライバシーを保護するために、Google Play のユーザーデータに関するポリシーにも準拠する必要があります。

権限

ID テスト 説明
Minimize_Permissions T-Minimize_Permissions アプリは、現在のユースケースのサポートに必要な最小限の権限のみをリクエストします。位置情報などの権限については、可能であれば、精細な位置情報ではなく、おおよその位置情報を使用します。権限のリクエストを最小限に抑えるをご覧ください。
Sensitive_Permissions T-Sensitive_Permissions

アプリは主要なユースケースに直接関係がある場合にのみ、センシティブ データ(SMS、通話履歴などのパーミッション グループ、位置情報)や料金がかかるサービス(電話アプリや SMS など)へのアクセス権限をリクエストする。これらの権限に伴う影響について、ユーザーに認識しやすい開示を行う必要があります。

アプリでの権限の使用方法によっては、機密情報にアクセスせずにアプリのユースケースに対応できる別の方法があるかもしれません。たとえば、ユーザーの連絡先に関連する権限をリクエストするのではなく、暗黙的インテントを使用してアクセスをリクエストします。

Runtime_Permissions T-Runtime_Permissions アプリの起動時ではなく、機能がリクエストされたときに実行時の権限をリクエストします。
Permission_Rationale T-Permission_Rationale アプリは権限が必要な理由を明確に説明している。
Graceful_Degradation T-Graceful_Degradation ユーザーが権限を拒否または取り消した場合、アプリはグレースフル デグラデーションを行います。アプリがユーザーのアクセスを完全に妨げてはなりません。

データとファイル

ID テスト 説明
Sensitive_Data_Storage T-Sensitive_Data_Storage、
T-Sensitive_Data_Handling
すべてのセンシティブ データはアプリの内部ストレージに保存します。
Sensitive_Data_Logging T-Sensitive_Data_Logging ユーザーの個人情報や機密情報がシステムログやアプリ固有のログに記録されない。
Hardware_IDs T-Hardware_IDs アプリでは、識別目的で IMEI などの再設定不可能なハードウェア ID を使用しない。

データのバックアップと復元

ID テスト 説明
App_Data_Backup T-App_Data_Backup

アプリは、クラウド バックアップとデバイス間(D2D)転送で、ユーザーデータ、設定、アプリの状態を保持します。

自動バックアップを実装し、android:dataExtractionRules を構成して、新しいデバイスのセットアップ時やアプリの再インストール時にシームレスにデータを復元できるようにします。

App_Logins_Restoration T-App_Logins_Restoration

ユーザーが新しいデバイスをセットアップすると、アプリがユーザー アカウントとログイン状態を自動的に復元する。

認証情報マネージャーを使用して認証情報の復元を実装し、手動ログインやアカウント復元フローを強制することなく、ユーザーを自動的に再認証します。

ID

ID テスト 説明
Autofill_Hints T-Autofill_Hints アカウント認証情報やその他の機密情報(クレジット カード情報、住所、電話番号など)を自動入力するためのヒントを提供する。
Credential_Manager T-Credential_Manager アプリに Android 向け認証情報マネージャーを統合して、パスキー、フェデレーション ID、パスワードのサポートを統合したシームレスなログイン エクスペリエンスを実現している。
Biometric_Authentication T-Biometric_Authentication 生体認証に対応し、支払いや機密情報(重要なユーザー ドキュメントなど)を保護する。

アプリ コンポーネント

ID テスト 説明
Component_Export T-Component_Export

すべてのアクティビティ、サービス、ブロードキャスト レシーバ、特にコンテンツ プロバイダ用に明示的に android:exported 属性を設定する。

他のアプリとデータを共有するアプリケーション コンポーネント、他のアプリから呼び出されるコンポーネントのみがエクスポートされる。

Component_Permissions T-Component_Permissions

すべてのインテントとブロードキャストを、次のベスト プラクティスに沿って設定する。

Component_Protection T-Component_Protection

アプリ間でコンテンツを共有するすべてのコンポーネントは、カスタム権限に android:protectionLevel="signature" を使用する。これには、アクティビティ、サービス、ブロードキャスト レシーバ、特にコンテンツ プロバイダが含まれる。

アプリはインストール済みパッケージのリストにアクセスする必要がないようにする。

ネットワーキング

ID テスト 説明
Network_Security_Traffic T-Network_Security_Traffic すべてのネットワーク トラフィックは SSL 経由で送信されます。
Network_Security_Configuration T-Network_Security_Configuration アプリがネットワーク セキュリティ構成を宣言している。
Security_Provider_Initialization T-Security_Provider_Initialization アプリが Google Play 開発者サービスを使用する場合、アプリの起動時にセキュリティ プロバイダが初期化される。

WebView

ID テスト 説明
WebView_Asset_Loader T-WebView_Asset_Loader、
T-WebView_Navigation
ローカル コンテンツへのアクセスに setAllowUniversalAccessFromFileURLs() を使用しないでください。代わりに WebViewAssetLoader を使用します。
WebView_JavaScript T-WebView_JavaScript、
T-WebView_Navigation

ウェブビューで、信頼できないコンテンツに対して addJavaScriptInterface() を使用していない。

Android 6.0(API レベル 23 以降)では、代わりに HTML メッセージ チャネルを使用する。

実行

ID テスト 説明
App_Bundles T-App_Bundles

アプリの APK の外部からコードを動的にロードしない。Android App Bundle(Play Feature Delivery と Play Asset Delivery を含む)を使用する。

2021 年 8 月から、Google Play ストアのすべての新しいアプリにおいて、Android App Bundle の使用が必須となっている。

暗号化

ID テスト 説明
Cryptographic_Algorithms T-Cryptographic_Algorithms アプリは、プラットフォームが提供する強力な暗号アルゴリズムと乱数生成ツールを使用している。また、アプリはカスタム アルゴリズムを実装していません。

Google Play

アプリを Google Play で公開できるようにします。

ポリシー

ID テスト 説明
Play_Content_Policies T-Play_Content_Policies アプリが Google Play デベロッパー コンテンツ ポリシーの利用規約を厳守し、不適切なコンテンツを提供せず、他者の知的財産やブランドを使用していない。
Play_Content_Rating T-Play_Content_Policies コンテンツのレーティングに関するガイドラインに基づいて、アプリの対象ユーザー(成熟度)が適切に設定されている。

アプリの詳細ページ

ID テスト 説明
Play_Feature_Graphic T-Play_Feature_Graphic,
T-Play_Graphic_Assets

アプリのフィーチャー グラフィックを、こちらのサポート記事で概説されているガイドラインに準拠させます。次の点をご確認ください。

  • アプリの掲載情報に、高画質のフィーチャー グラフィックが含まれている
  • フィーチャー グラフィックに含まれるデバイス画像、スクリーンショット、小さいテキストが、縮小表示したときや、アプリがターゲットとする最小画面サイズで表示したとき、読みにくくならない
  • フィーチャー グラフィックが広告に類似していない
Play_Device_References T-Play_Graphic_Assets アプリのスクリーンショットや動画で、Android デバイス以外のデバイスを表示したり、そうしたデバイスに言及したりしません。
Play_Misleading_Content T-Play_Graphic_Assets スクリーンショットや動画で、アプリのコンテンツとエクスペリエンスについて誤解を招くような表現をしないようにします。

ユーザーのサポート

ID テスト 説明
Play_User_Reviews T-Play_Content_Policies Google Play ページの [レビュー] タブでユーザーから報告された一般的なバグについては、再現性がありさまざまなデバイスで発生する場合、対処します。バグがごく一部のデバイスでしか発生しない場合でも、特に人気のあるデバイスや新しいデバイスであれば、対処する必要があります。

テスト環境

次のようにテスト環境をセットアップします。

  • エミュレータのテスト: Android Emulator は、さまざまな Android バージョンと画面解像度でのアプリのテストに最適なツールです。ターゲット ユーザーの最も一般的なフォーム ファクタとハードウェア/ソフトウェアの組み合わせを代表する、エミュレートされたデバイス(AVD)を設定します。少なくとも次のエミュレータを使用して、さまざまなフォーム ファクタをテストします。

    • 折りたたみ式デバイス: 7.6 インチ、ディスプレイが外側を向くデバイス(AVD Manager のスマートフォンに掲載されています)
    • タブレット: Pixel C 9.94 インチ(2,560 px x 1,800 px)
    • モバイルアプリの通知をテストするために、モバイル デバイス / エミュレータを Wear OS エミュレータとペア設定する場合: Wear OS Round 1.84 インチ
  • ハードウェア デバイス: テスト環境では、主要なフォーム ファクタと、ユーザーが利用できるハードウェアとソフトウェアの典型的な組み合わせとして、実際のハードウェア デバイスをいくつか用意します。市販されているあらゆるデバイスでテストを実施する必要はありません。1 つのフォーム ファクタにつき 1 ~ 2 台のデバイスを使い、代表的ないくつかのデバイスでのみテストを行います。

  • デバイスのテストラボ: Firebase Test Lab などのサードパーティのサービスを使用して、さまざまなデバイスでアプリをテストすることもできます。

  • 最新バージョンの Android でテストする: ターゲット ユーザーの典型的な Android バージョンをテストするだけでなく、最新バージョンの Android についてもテストして、最新の動作変更がアプリのユーザー エクスペリエンスに悪影響を及ぼさないことを確認する必要があります。

単体テスト、統合テスト、UI テストなど、テストに関する詳細なガイダンスについては、Android アプリのテストの基礎をご覧ください。

StrictMode

パフォーマンス テストでは、アプリで StrictMode を有効にします。StrictMode を使用して、パフォーマンス、ネットワーク アクセス、ファイルの読み取りと書き込みに影響する可能性のあるオペレーションをキャッチします。メインスレッドと他のスレッドの両方で、問題のあるオペレーションを探します。

StrictMode.ThreadPolicy.Builder を使用してスレッドごとのモニタリング ポリシーを設定し、detectAll() を使用して ThreadPolicy でサポートされているすべてのモニタリングを有効にします。

penaltyFlashScreen() を使用して、ThreadPolicy のポリシー違反の視覚的な通知を有効にします。

テスト

アプリの中核品質テストは、アプリの基本的な品質を評価するのに役立ちます。複数のテストを組み合わせることも、テスト計画にテストのグループを統合することもできます。

ユーザー エクスペリエンス

一貫性のある直感的なユーザー エクスペリエンスをテストします。

ユーザビリティ

ID 機能 説明
T-Consistent_UX Consistent_UX

アプリのすべての部分(すべての画面、ダイアログ、設定、すべてのユーザーフロー)に移動します。

次の操作を行います。
  • アプリで編集、コンテンツ作成、ゲームプレイ、メディア再生が可能な場合は、それらのフローをテストしてください。
  • アプリのテスト中に、通知の受信や電話の着信など、他のアプリからの割り込みを発生させ、デバイス属性(ネットワーク接続、電池の機能、GPS の利用、システム負荷など)に一時的な変更を適用します。
  • すべてのアプリ内購入フローをテストします。
T-App_Switcher App_Switcher 各アプリ画面から、実行中の別のアプリに切り替えてから、[最近] アプリ スイッチャーを使用してテスト対象のアプリに戻ります。
T-Sleep_Resume Sleep_Resume 電源ボタンを押してデバイスをスリープ状態にしてから、電源ボタンをもう一度押して画面を復帰させます。
T-Lock_Resume Lock_Resume デバイスで画面ロックを設定します。電源ボタンを押してデバイスをスリープ状態にします(デバイスがロックされます)。次に、電源ボタンをもう一度押して画面を復帰させ、デバイスのロックを解除します。

SDカード

ID 機能 説明
T-SD_Card Consistent_UX

アプリをデバイスの SD カードにインストールして、コア機能のテストを実施します(アプリがこのインストール方法をサポートしている場合)。

アプリを SD カードに移動するには、アプリの [設定] をご覧ください。

ユーザー インターフェース

ID 機能 説明
T-Orientation_Transitions Display_State_Parity、
Fullscreen_Display、
Orientation_Transitions

アプリの各画面で、少なくとも 3 回、デバイスを横向きと縦向きに回転させ、折りたたみ状態と展開状態を切り替える。

アプリが次の処理を行うことを確認します。
  • すべてのディスプレイの向きと折りたたみ状態で同等の機能を提供する
  • すべてのディスプレイの向きと折りたたみ状態でアプリ ウィンドウ全体に表示され、レターボックス表示されない
  • 向きの急な変化やデバイスの折りたたみ / 展開の際に、状態が維持され、レンダリングの問題が発生しない

画質

ID 機能 説明
T-Graphic_Quality Graphic_Quality アプリのすべての機能を使用します。グラフィックス、テキスト、画像、その他の UI 要素を含むすべてのビジュアルに、歪み、ぼやけ、粗さがないことを確認します。
T-Line_Length Line_Length

アプリ内のすべてのテキスト ブロックを確認します。テキストとテキスト ブロックの行の長さが、読みやすさを考慮して 45 ~ 75 文字(スペースを含む)に制限されていることを確認します。

次のことを確認します。
  • サポートしているすべてのフォーム ファクタで適切な構成となる
  • 文字や語句が途切れない
  • ボタンまたはアイコン内の語句が不適切に改行されない
  • テキストと周囲の要素の間に十分なスペースがある
T-Theme_Support Theme_Support ライトモードとダークモードですべてのテキストが読み取れることを確認します。すべてのビジュアルが、ライトモードとダークモードで明確に識別でき、美しく表示されることを確認します。
ID 機能 説明
T-Back_Nav Back_Button_Nav、
Back_Gesture_Nav

アプリのすべての部分(すべての画面、ダイアログ、設定、すべてのユーザーフロー)に移動します。

各アプリの画面で、戻るボタンを押すか、戻るスワイプ操作を行います。アプリは前の画面またはホーム画面に移動する必要があります。

T-State_Preservation State_Preservation 各アプリの画面で、デバイスのホームキーを押すか、ジェスチャー ナビゲーションで上にスワイプし、[すべてのアプリ] 画面からアプリを再起動します。

通知

ID 機能 説明
T-Notification_Quality Notification_Quality、
Conversation_Quality
通知ドロワーで、アプリが表示できるあらゆるタイプの通知を表示させて確認します。該当する場合は通知を展開し(Android 4.1 以降)、利用可能なすべてのアクションをタップします。

ユーザー補助

ID 機能 説明
T-Touch_Target_Size Touch_Target_Size すべてのディスプレイのサイズと設定で、タップ ターゲットが一貫性を持ってアクセス可能なサイズと位置を保持していることを確認する。ユーザー補助に関する情報は、ユーザー補助検証ツールをご覧ください。
T-Visual_Contrast Visual_Contrast すべての視覚要素のコントラストを確認します。
T-Content_Description Content_Description TextView 以外のすべての UI 要素にコンテンツの説明があることを確認します。

機能

アプリが次の機能動作を実装していることを確認します。

音声

ID 機能 説明
T-Audio_Playback_Start Audio_Playback_Start 音声の再生を開始します。1 秒以内にアプリが音声の再生を開始するか、音声データの再生準備中であることを示すインジケーターが表示されることを確認します。
T-Audio_Focus_Request Audio_Focus_Request 音声の再生を開始します。アプリは音声フォーカスをリクエストする必要があります。音声再生が停止すると、アプリは音声フォーカスを放棄する必要があります(Android 12(API レベル 31)以降を対象とするアプリでは自動的に行われます)。
T-Audio_Focus_Change Audio_Focus_Change 音声の再生を開始します。別のアプリで音声再生を開始します。アプリは音声フォーカスの変更に応答し、音声再生を停止するか、再生音量を下げる必要があります。
T-Audio_Playback_Background Audio_Playback_Background

音声の再生を開始します。別の音声以外のアプリをフォアグラウンド アプリとして操作します。アプリはバックグラウンドで音声を再生し続け、ステータスバーに通知を表示する必要があります。通知に表示されるコントロールを使用して再生を管理できることを確認します。

デバイスの画面をロックします。アプリはバックグラウンドで音声を再生し続け、ロック画面に通知を表示する必要があります。通知に表示されるコントロールを使用して再生を管理できることを確認します。

T-Audio_Notification_Style Audio_Notification_Style 音声の再生を開始します。別の音声以外のアプリをフォアグラウンド アプリとして操作します。アプリがバックグラウンドで音声を再生し続け、MediaStyle でスタイル設定された通知を作成したことを確認します。メディア コントロールを適切に操作するをご覧ください。
T-Audio_Playback_Resume Audio_Playback_Resume 音声の再生を開始します。別の音声以外のアプリをフォアグラウンド アプリとして操作します。アプリを操作してトップアプリにします。音声が再開されるか、音量が元に戻るはずです。それ以外の場合、アプリは再生が一時停止されていることをユーザーに示す必要があります。

動画

ID 機能 説明
T-Video_PiP Video_PiP アプリの動画再生をピクチャー イン ピクチャー モードで有効にします。
T-Video_Encoding Video_Encoding アプリが HEVC 動画圧縮標準を使用して動画をエンコードしていることを確認します。
T-Video_Playback_Background Video_Playback_Background 動画の再生を開始します。アプリ ウィンドウを最小化し、別のアプリを開いてアプリ ウィンドウをバックグラウンドに移動します。デスクトップ対応デバイスで、アプリ ウィンドウを表示されているデスクトップの外に移動します。すべての場合において、動画の再生が中断されることなく継続されることを確認します。

共有

ID 機能 説明
T-System_Sharesheet System_Sharesheet インテントを作成し、インテントを引数として startActivity() を呼び出してアクティビティを開始します。Android Sharesheet を使用するをご覧ください。アプリに Android Sharesheet が表示されます。

バックグラウンド サービス

ID 機能 説明
T-Background_Service_Optimization Background_Service_Optimization

アプリの主要な機能をすべて使用します。長時間実行されるバックグラウンド サービスが開始されていないことを確認します。

別のアプリに切り替えて、アプリをバックグラウンドに移動します。[設定] に移動し、アプリがバックグラウンドで実行されているときにサービスが実行されているかどうかを確認します。Android 4.0 以降では、[アプリ] 画面に移動し、[実行中] タブでアプリを見つけます。

パフォーマンスと安定性

パフォーマンス、安定性、ピクセル単位で完璧なビジュアルを確認します。

パフォーマンス

ID 機能 説明
T-App_Startup_Time App_Startup_Time アプリを起動します。アプリが迅速に読み込まれること、または読み込み時間が 2 秒を超える場合は進行状況インジケーターや同様の合図が表示されることを確認します。
T-Rendering_Performance Rendering_Performance アプリの主要な機能をすべて使用します。アプリが 1 秒あたり 60 フレーム以上でレンダリングされることを確認します。[HWUI レンダリングのプロファイル作成] オプションを使用して、アプリをテストします。
T-StrictMode_Compliance StrictMode_Compliance

アプリで StrictMode を有効にします。すべての主要な機能を使用します。アプリが StrictMode パフォーマンス警告を生成しないことを確認します。つまり、アプリのテスト時に赤色のフラッシュが表示されないことを確認します。赤色のフラッシュは、ストレージ、ネットワーク アクセス、メモリ管理(メモリリークなど)に関する不正な動作を示します。

ガベージ コレクションと、それがユーザー エクスペリエンスに与える影響に細心の注意を払います。

安定性

ID 機能 説明
T-Stability_ANR Stability_ANR アプリの主要な機能をすべて使用します。アプリがクラッシュしたり、UI スレッドをブロックして ANR(アプリケーション応答なし)エラーを引き起こしたりしないことを確認します。Google Play のリリース前レポートを確認し、安定性に関する潜在的な問題を特定してください。

SDK

ID 機能 説明
T-Android_Platform_Compatibility Android_Platform_Compatibility Android プラットフォームの最新の公開バージョンでアプリを実行します。すべての主要な機能を使用する。アプリがクラッシュせず、コア機能が失われることなく動作することを確認します。
T-Target_SDK_Version Target_SDK_Version、
Compile_SDK_Version
Android マニフェスト ファイルとビルド構成を確認して、アプリが利用可能な最新の SDK(targetSdk と compileSdk)に対してビルドされていることを確認します。
T-SDK_Maintenance SDK_Maintenance アプリの build.gradle ファイルで、古い依存関係がないか確認します。
T-Non_SDK_Interfaces Non_SDK_Interfaces Android Studio の lint ツールを使用して、非 SDK インターフェースの使用を検出します。別のテスト方法については、非 SDK インターフェースの制限をご覧ください。
T-Production_Build_Quality Production_Build_Quality アプリの build.gradle ファイルで、含まれているデバッグ ライブラリを確認します。

電池

ID 機能 説明
T-Power_Management Power_Management

Doze モードとアプリ スタンバイ モードで、アプリの主要な機能をすべて使用します。Doze のメンテナンスの時間枠内、およびアプリがアプリ スタンバイ モードを終了したときに、アラーム、タイマー、通知、同期が正常に機能することを確認します。

ADB コマンドを使用して Doze とアプリ スタンバイの動作をテストします(要件とガイドラインについては、Doze モードとアプリ スタンバイ モードでテストするをご覧ください)。

想定外のバッテリー消費を診断するには、Android Studio Power Profiler または Battery Historian ツールを使用し、計画済みのバックグラウンド作業と組み合わせて診断します。

プライバシーとセキュリティ

ユーザーが期待するプライバシーとセキュリティの保護をテストする。

権限

ID 機能 説明
T-Minimize_Permissions Minimize_Permissions アプリに必要なすべての権限を、マニフェスト ファイル、実行時、デバイスのアプリ設定([設定] > [アプリ情報])で確認します。
T-Sensitive_Permissions Sensitive_Permissions 権限をリクエストするアプリの機能を使用します。アプリがセンシティブ データやサービスへのアクセス権限をリクエストするのは、アプリの主要なユースケースのみであることを確認します。機密データやサービスへのアクセス許可を付与することの影響が、ユーザーに明確に伝えられていることを確認します。
T-Runtime_Permissions Runtime_Permissions 権限が必要なアプリのすべての機能を使用します。権限が、アプリの起動時ではなく、機能にアクセスしたときにのみ、遅延リクエストされることを確認します。
T-Permission_Rationale Permission_Rationale 権限が必要なアプリのすべての機能を使用します。権限が必要な理由をアプリがユーザーに説明していることを確認します。
T-Graceful_Degradation Graceful_Degradation 権限が必要なアプリのすべての機能を使用します。権限を拒否または取り消します。アプリが代替のユースケースを提供し、引き続き機能することを確認します。

データとファイル

ID 機能 説明
T-Sensitive_Data_Storage Sensitive_Data_Storage 内部ストレージに保存されているすべてのデータを確認します。外部に保存されているデータが機密データでないことを確認します。
T-Sensitive_Data_Handling Sensitive_Data_Storage 外部ストレージから読み込まれたデータの処理方法を確認します。
T-Sensitive_Data_Logging Sensitive_Data_Logging デバイスログをモニタリングしながら、アプリの主要な機能をすべて使用します。ユーザーの個人情報がログに記録されていないことを確認します。
T-Hardware_IDs Hardware_IDs アプリの主要な機能をすべて使用します。アプリで、識別目的で IMEI などのハードウェア ID が使用されていないことを確認します。

データのバックアップと復元

ID 機能 説明
T-App_Data_Backup App_Data_Backup

プライマリ デバイスでローカル設定、データベース、アプリ設定を構成します。クラウド バックアップまたはデバイス間(D2D)転送を新しいデバイスに対して実行します。

転送後、対象デバイスでアプリを起動し、自動バックアップ ルールに従ってローカル設定、データベースの状態、ユーザー設定が正確に復元されていることを確認します。詳細なテスト手順については、バックアップと復元のテストをご覧ください。

T-App_Logins_Restoration App_Logins_Restoration

パスキー、パスワード、または Google ログインを使用して、メインのデバイスでログイン セッションを設定します。クラウド バックアップまたはデバイス間(D2D)転送を新しいデバイスに対して実行します。

転送後に対象デバイスでアプリを起動し、ログイン画面が表示されたりアカウントの復元が求められたりすることなく、Restore Credentials を使用して認証が自動的に復元されることを確認します。詳細なテスト手順については、Restore Credentials のテストをご覧ください。

ID

ID 機能 説明
T-Autofill_Hints Autofill_Hints ユーザー入力を必要とするアプリのすべての機能を使用します。アカウントの認証情報やその他の機密情報などのデータを入力する入力フィールドを自動入力するためのヒントをアプリが提供していることを確認します。
T-Credential_Manager Credential_Manager アプリにログインします。アプリに Android 用認証情報マネージャーが統合され、パスキー、フェデレーション ID、パスワードをサポートする統合されたログイン エクスペリエンスが提供されていることを確認します。
T-Biometric_Authentication Biometric_Authentication 認証が必要なアプリの機能をすべて使用します。アプリが生体認証を使用して、支払いや機密情報(重要なユーザー ドキュメントなど)を保護していることを確認します。

アプリ コンポーネント

ID 機能 説明
T-Component_Export Component_Export Android マニフェスト ファイルで定義されているすべてのアプリ コンポーネントが適切なエクスポート状態になっていることを確認します。エクスポートされたプロパティは、すべてのコンポーネントに対して明示的に設定する必要があります。
T-Component_Permissions Component_Permissions マニフェスト ファイル、実行時、デバイスのアプリ設定([設定] > [アプリ情報])で、アプリが必要とするすべての権限を確認します。
T-Component_Protection Component_Protection Android マニフェスト ファイルで定義されているすべてのコンテンツ プロバイダを確認します。各プロバイダに適切な protectionLevel が設定されていることを確認します。

ネットワーキング

ID 機能 説明
T-Network_Security_Traffic Network_Security_Traffic クリアテキスト トラフィックを無効にするネットワーク セキュリティ構成を宣言し、アプリをテストします。
T-Network_Security_Configuration Network_Security_Configuration アプリのネットワーク セキュリティ構成を確認します。構成の lint チェックが失敗していないことを確認します。
T-Security_Provider_Initialization Security_Provider_Initialization Google Play 開発者サービスで、アプリの起動時にセキュリティ プロバイダが初期化されることを確認します。

WebView

ID 機能 説明
T-WebView_Asset_Loader WebView_Asset_Loader アプリのネットワーク セキュリティ構成を確認します。構成の lint チェックが失敗していないことを確認します。
T-WebView_JavaScript WebView_JavaScript WebView ごとに、JavaScript を必要とするページに移動します。
T-WebView_Navigation WebView_Asset_Loader、
WebView_JavaScript
各 WebView で、アプリによって直接読み込まれないサイトやコンテンツに移動してみます。

実行

ID 機能 説明
T-App_Bundles App_Bundles アプリが Android App Bundle を使用しており、アプリの APK の外部からコードを動的に読み込まないことを確認します。

暗号化

ID 機能 説明
T-Cryptographic_Algorithms Cryptographic_Algorithms アプリが、プラットフォームが提供する強力な暗号アルゴリズムと乱数ジェネレータを使用していることを確認します。また、アプリがカスタム アルゴリズムを実装していないことを確認します。

Google Play

アプリが Google Play に対応していることを確認します。

ポリシー

ID 機能 説明
T-Play_Content_Policies Play_Content_Policies、
Play_Content_Rating、
Play_User_Reviews
Google Play Console にログインして、デベロッパー プロフィール、アプリの説明、スクリーンショット、フィーチャー グラフィック、コンテンツのレーティング、ユーザーからのフィードバックを確認します。

アプリの詳細ページ

ID 機能 説明
T-Play_Feature_Graphic Play_Feature_Graphic フィーチャー グラフィックとスクリーンショットをダウンロードし、ターゲットとするデバイスやフォーム ファクタのディスプレイ サイズに合わせて縮小します。
T-Play_Graphic_Assets Play_Feature_Graphic、
Play_Device_References、
Play_Misleading_Content
アプリまたは拡張ファイルのダウンロードにパッケージ化されているすべての画像および映像、メディア、テキスト、コード ライブラリ、その他のコンテンツを確認します。

アーカイブ

アプリの中核品質に関するガイドラインの以前のバージョン: