Instant 配信を構成する

Google Play Instant を使用すると、デバイスに APK をインストールしなくても、ユーザーがアプリを利用できるようになります。インストールする代わりに、ユーザーは Google Play ストアの [今すぐ試す] ボタンか、デベロッパーが作成した URL を使ってアプリを利用できます。このコンテンツ配信形式を使用すると、Android アプリのユーザー エンゲージメントを高めるのが容易になります。

機能を Instant 対応にすることができるのは、アプリのベース モジュールも Instant 対応にしている場合のみです。これは、ユーザーがアプリの Instant 対応の機能を利用しようとした場合、共通のコードとリソース用のアプリのベース モジュールもデバイスにダウンロードする必要があるためです。Google Play Instant をサポートするには、ベース モジュールと機能のダウンロードで以下の条件を満たす必要があります。

このセクションで説明しているように、Android Studio 3.5 以上を使用して Instant 対応の機能モジュールを作成すると、IDE によってベース モジュールと機能モジュールの各マニフェストに次の内容が追加され、両方のモジュールが自動的に Instant 対応になります。

<manifest xmlns:dist="http://schemas.android.com/apk/distribution"
    ... >
    <dist:module dist:instant="true" />
    ...

また、アプリをダウンロードしてインストールする際に、アプリのベース APK とともに Instant 対応の機能モジュールが自動的にダウンロードおよびインストールされます。したがって、Instant 対応の機能モジュールには、IDE により次の内容も追加されます。

    <dist:module ...>
        <dist:delivery>
            <dist:install-time />
        </dist:delivery>
    </dist:module>

この動作により、dist:instant="true" を設定する場合に <dist:on-demand /> も含めることはできません。ただし、Play Feature Delivery Library を使用することにより、Instant 版で Instant 対応モジュールをオンデマンドでリクエストできます。

Instant 配信用の新しいモジュールを設定する

Android Studio を使用して Instant 対応の機能モジュールをアプリ プロジェクトに追加する手順は次のとおりです。

  1. IDE 内でアプリ プロジェクトをまだ開いていない場合は、開きます。
  2. メニューバーから [File] > [New] > [New Module] を選択します。
  3. [Create New Module] ダイアログで [Instant Dynamic Feature Module] を選択して [Next] をクリックします。
  4. [Configure your new module] セクションで次のように入力します。

    1. [Base application module] プルダウン メニューからそのアプリ プロジェクトのベース モジュールを選択します。
    2. [Module name] にモジュール名を指定します。この名前は IDE によって Gradle 設定ファイル内でそのモジュールを Gradle サブプロジェクトとして識別するために使用されます。サブプロジェクト名の最後の要素は、App Bundle をビルドする際、Gradle によって、<manifest split> 属性を機能モジュールのマニフェストに挿入するために使用されます。
    3. [Package name] にモジュールのパッケージ名を指定します。Android Studio でのデフォルトのパッケージ名は、ベース モジュールのルート パッケージ名と、前のステップで指定したモジュール名を組み合わせた名前です。
    4. [Minimum API level] で、モジュールがサポートする最小 API レベルを選択します。この値はベース モジュールの値と一致している必要があります。
    5. [Module title] にモジュールのタイトルを半角 50 文字(全角 25 文字)以内で指定します。プラットフォームはこのタイトルを使用してモジュールを識別します。そのため、アプリのベース モジュールのタイトルを、文字列リソースとして指定して、翻訳できるようにする必要があります。Android Studio を使ってこのモジュールを作成すると、IDE はその文字列リソースをベース モジュールに追加して、次のようなエントリをその機能モジュールのマニフェストに挿入します。

      <dist:module
          ...
          dist:title="@string/feature_title">
      </dist:module>
      
    6. Android 4.4(API レベル 20)以下を搭載したデバイスでこのモジュールを使用可能にして、マルチ APK に含める場合は、[Fusing] チェックボックスをオンにします。Android Studio はデベロッパーの選択に合わせて、モジュールのマニフェストに以下を挿入します。

      <dist:module>
          <dist:fusing dist:include="true" />
      </dist:module>
      
  5. [Finish] をクリックします。

Android Studio でモジュールの作成を終えた後、[Project] ペインでモジュールの内容を確認します(メニューバーから [View] > [Tool Windows] > [Project] を選択します)。デフォルトのコード、リソース、編成は、標準のアプリ モジュールの場合と同様です。

オンデマンドでダウンロードする機能を実装した後は、Play Feature Delivery Library を使用してダウンロードをリクエストする方法をご確認ください。

アプリをデプロイする

機能モジュールをサポートするアプリの開発中も、通常のように、接続されたデバイスにアプリをデプロイできます。それには、メニューバーから [Run] > [Run] を選択します(またはツールバーで実行アイコン をクリックします)。

アプリ プロジェクトに機能モジュールが含まれる場合、アプリのデプロイ時にどの機能を含めるかを選択できます。それには、次のようにして既存の実行 / デバッグ構成を変更します。

  1. メニューバーから [Run] > [Edit Configurations] を選択します。
  2. [Run/Debug Configurations] ダイアログの左パネルの [Android App] で該当するアプリの構成を選択します。
  3. [General] タブの [Dynamic features to deploy] で、アプリのデプロイ時に含める各機能モジュールのチェックボックスをオンにします。
  4. [OK] をクリックします。

デフォルトでは、Android Studio が Instant 対応モジュールを Instant 版としてデプロイする、またはアプリを App Bundle でデプロイすることはありません。代わりに、IDE が APK をビルドしてデバイスにインストールします。この APK は、サイズよりもデプロイの早さについて最適化されます。IDE ではなく、Android Studio で App Bundle からの APK と Instant 版のビルド、デプロイを行うように構成するには、実行 / デバッグ構成を変更します。