Android XR を搭載した Samsung Galaxy XR が登場このブログ投稿は、 Android XR Spotlight Week の一環として公開されたものです。このイベントでは、Android XR 向けアプリの学習、構築、準備に役立つリソース(ブログ投稿、動画、サンプルコードなど)を提供しています。
今回は、開発ジャーニーの最後のステップの 1 つである、ユーザーにエクスペリエンスを確実に届けることに焦点を当てます。正しく公開することで、アプリが効率的にパッケージ化され、適切なデバイスで検出され、最適な形で表示されるようになります。
Google Play で Android XR 向けアプリを公開、配信するにあたって知っておくべき 5 つのポイントをご紹介します。
1. Android XR アプリの品質に関するガイドラインに準拠して品質を維持する
アプリを公開する前に最も重要なステップの一つは、アプリが安全で快適な、パフォーマンスの高いユーザー エクスペリエンスを提供することを確認することです。
Android XR アプリの品質ガイドラインに沿って開発することで、Galaxy XR などのデバイスでユーザーに優れたエクスペリエンスを提供できます。
品質が重要な理由
これらのガイドラインは、大画面アプリの品質に関するガイドラインを基盤としており、次のような XR 固有の重要な条件に重点を置いています。
- 安全性と快適性: これは最優先事項です。これらのガイドラインは、カメラの動きやフレームレートの基準を設定し、ストロボなどの視覚要素を制限することで、乗り物酔いを防ぐのに役立ちます。
- パフォーマンス: ラグを防ぎ、スムーズで快適なエクスペリエンスを確保するため、アプリは目標フレームレートなどのパフォーマンス指標を満たしている必要があります。
- 操作: ガイドラインでは、アイトラッキングとハンドトラッキングの入力が適切に機能するように、操作対象の推奨最小サイズ(最小 48 dp、推奨 56 dp など)を指定しています。
2. アプリ マニフェストを正しく構成する
AndroidManifest.xml ファイルには、アプリに関する重要な情報が記述されています。Android ビルドツール、Android システム、Google Play は、この情報を使用して、どのようなエクスペリエンスを構築したか、どのようなハードウェア機能が必要かを把握します。デバイス ターゲティングとアプリの起動を正しく行うには、適切な設定が不可欠です。
アプリが使用する Android XR SDK を指定する
アプリ マニフェストに android.software.xr.api.spatial または android.software.xr.api.openxr を含めて、Jetpack XR SDK でビルドしているか、OpenXR または Unity でビルドしているかを示します。
| 使用した SDK | マニフェストの宣言 |
| Jetpack XR SDK | android.software.xr.api.spatial |
| OpenXR または Unity | android.software.xr.api.openxr |
アプリが OpenXR または Unity を使用してビルドされている場合は、android:required 属性を trueに設定する必要があります。Jetpack XR SDK でビルドされたアプリの場合、アプリが Android XR 専用のリリース トラックに公開されている場合は android:required 属性を true に設定し、アプリがモバイル リリース トラックに公開されている場合は android:required 属性を false に設定します。
アクティビティの開始モードを設定する
メイン アクティビティの android.window.PROPERTY_XR_ACTIVITY_START_MODE プロパティを使用して、デフォルトのユーザー環境を定義します。
| 開始モード | 目的 | SDK |
XR_ACTIVITY_START_MODE_HOME_SPACE | 共有のマルチタスク環境であるホームスペースでアプリを起動します。 | Jetpack XR SDK |
XR_ACTIVITY_START_MODE_FULL_SPACE_MANAGED | フルスペース(完全没入型の単一アプリ環境)で起動します。 | Jetpack XR SDK |
XR_ACTIVITY_START_MODE_FULL_SPACE_UNMANAGED | フルスペース(完全没入型の単一アプリ環境)で起動します。OpenXR または Unity でビルドされたアプリは、常にフルスペースで動作します。 | OpenXR または Unity |
実行時にオプションのハードウェア機能をチェックする
アプリに本当に必要な場合を除き、オプションの XR 機能(ハンド トラッキングやコントローラなど)を android:required="true" に設定しないでください。必要な機能をデバイスがサポートしていない場合、Google Play はそのデバイスからアプリを非表示にします。必須として設定した機能がなくてもアプリが動作する場合は、対象ユーザーを不必要に制限してしまう可能性があります。
代わりに、hasSystemFeature() を使用して PackageManager クラスでランタイムに高度な機能を動的に確認します。
Kotlin val hasHandTracking = packageManager.hasSystemFeature("android.hardware.xr.input.hand_tracking") if (hasHandTracking) { // Enable high-fidelity hand tracking features } else { // Provide a fallback experience }
これにより、アプリの幅広い互換性が確保され、高度な機能が利用可能になったときに活用できるようになります。
3. Play Asset Delivery(PAD)を使用して大容量のアセットを配信する
イマーシブ アプリやゲームには、標準のサイズ上限を超える可能性のある大きなアセットが含まれていることがよくあります。 Play Asset Delivery(PAD)を使用して、大容量で忠実度の高いアセットを管理します。PAD では、コンテンツのプログレッシブ ダウンロード用に、インストール時、高速フォロー、オンデマンドの柔軟な配信モードが提供されています。Android XR 向けにビルドされたアプリは、アセットパックを追加で配信できます。オンデマンドまたは fast-follow で配信されるアセットパックの合計サイズは 4 GB ではなく 30 GB になります。
Unity でビルドするデベロッパーは、Unity Addressables と Play Asset Delivery を併用してアセットパックを管理します。
4. 空間動画のプレビューでアプリを紹介する
XR ヘッドセットで Google Play ストアを閲覧しているユーザーの注意を引くために、空間動画アセットを使用してアプリの没入型プレビューを提供できます。180°、360°、または立体視動画である必要があります。Android XR デバイスでは、Google Play ストアでこのプレビューが没入感のある 3D プレビューとして自動的に表示されるため、ユーザーはアプリをインストールする前にコンテンツの奥行きやスケールを体験できます。
5. Google Play のリリース トラックを選択する
Google Play では、Android XR アプリを公開するための 2 つの方法が用意されています。どちらも同じ Google Play Console アカウントを使用します。
オプション A: モバイル リリース トラックで続行する(空間オーディオ対応モバイルアプリの場合)
既存のモバイルアプリに空間 XR 機能を追加する場合は、多くの場合、XR 機能やコンテンツを既存の Android App Bundle(AAB)にバンドルできます。
このアプローチは、アプリのコア機能のほとんどがモバイル デバイスと XR デバイスの両方で維持され、モバイル トラックに同じ AAB を引き続き公開できる場合に最適です。こちらのガイダンスを確認して、このユースケースをサポートするようにアプリのマニフェスト ファイルを正しく構成してください。
オプション B: 専用の Android XR リリース トラックに公開する
XR 向けのまったく新しいアプリを構築する場合や、XR バージョンが単一の AAB に収まらないほど機能的に異なる場合は、Android XR 専用のリリース トラックに公開する必要があります。
Android XR 専用のリリース トラックに公開されたアプリは、android.software.xr.api.spatial 機能または android.software.xr.api.openxr 機能をサポートする Android XR デバイスでのみ表示されるため、配信を制御できます。
このガイダンスに沿って対応することで、革新的な Android XR アプリが、質の高いユーザー エクスペリエンスを提供し、効率的にパッケージ化され、PAD を使用してスムーズに配信され、実行可能なデバイスを対象とすることが保証されます。ぜひご活用ください。
-
ハウツーMedia3 1.11 がリリースされました。このリリースでは、トップクラスの Android メディアアプリの大部分を支える、再生、編集、UI コンポーネントにわたる新機能、バグの修正、改善が導入されています。
Toni Heidenreich • 所要時間: 3 分 -
ハウツー「インテリジェントな Android アプリを構築する」ブログ投稿シリーズにようこそ。このシリーズでは、基本的な Android アプリをパーソナライズされたインテリジェントなエージェント エクスペリエンスに変換します。前回の投稿では、このシリーズ全体で使用するデモアプリである Jetpacker を紹介しました。
Caren Chang • 所要時間: 6 分 -
ハウツーJetpacker は、今年の Google I/O 向けにチームがゼロから構築した技術ショーケース アプリです(Antigravity を使用して構築)。Jetpacker は、ユーザーが次の大きな冒険を計画、探索、楽しむためのアプリです。
Jolanda Verhoef • 所要時間: 4 分
Android 開発に関する最新の分析情報を毎週メールでお届けします。