Google Play Instant
allows users to
interact with your app without needing to install
APK(s) on their device. Instead, they can experience your app through the
"Try Now" button on the Google Play Store
or a URL that you create. This form of delivering content makes it easier
for you to increase engagement with your app.
You can instant-enable a feature only if you also instant-enable your
app’s base module. That’s because, if a user wants to experience one of your
app’s instant-enabled feature modules, their device must also download your
app’s base module for common code and resources. Keep in mind, to support Google
Play Instant, the download for your base module and feature must satisfy
several criteria:
If you create an instant-enabled feature module using
Android Studio
3.5
or higher, as described in this section, the IDE automatically
instant-enables both the base and feature module for you by including
the following in each module’s manifest:
<manifest xmlns:dist="http://schemas.android.com/apk/distribution"
... >
<dist:module dist:instant="true" />
...
Additionally, when downloading and
installing
your app,
instant-enabled feature modules are automatically downloaded and installed with
your app’s base APK. So, the IDE also includes the following in the
instant-enabled feature module.
<dist:module ...>
<dist:delivery>
<dist:install-time />
</dist:delivery>
</dist:module>
This behavior means that when you set
dist:instant="true"
, you cannot also
include
<dist:on-demand />
. However, you can request instant-enabled modules on
demand
within your instant experience
using the Play Feature Delivery Library
.
Configure a new module for instant delivery
To add an instant-enabled feature module to your app project using
Android Studio, proceed as follows:
- If you haven’t already done so, open your app project in the IDE.
- Select
File > New > New Module
from the menu bar.
- In the
Create New Module
dialog, select
Instant Dynamic Feature Module
and click
Next
.
In the
Configure your new module
section, complete the
following:
- Select the
Base application module
for your app project from
the dropdown menu.
- Specify a
Module name
. The IDE uses this name to identify the
module as a Gradle subproject in your
Gradle settings file
. When you
build your app bundle, Gradle uses the last element of the subproject
name to inject the
<manifest split>
attribute in the
feature module’s manifest
.
- Specify the module’s
package name
. By default, Android Studio
suggests a package name that combines the root package name of the
base module and the module name you specified in the previous step.
- Select the
Minimum API level
you want the module to support.
This value should match that of the base module.
Specify the
Module title
using up to 50 characters. The platform
uses this title to identify the module to users. For this
reason, your app’s base module must include the module title as a
string resource
, which you
can translate. When creating the module using Android Studio, the IDE
adds the string resource to the base module for you and injects the
following entry in the feature module’s manifest:
<dist:module
...
dist:title="@string/feature_title">
</dist:module>
Check the box next to
Fusing
if you want this module to be available
to devices running Android 4.4 (API level 20) and lower and included in
multi-APKs. Android Studio injects the following in the module’s manifest
to reflect your choice.
<dist:module>
<dist:fusing dist:include="true" />
</dist:module>
Click
Finish
.
After Android Studio finishes creating your module, inspect its contents
yourself from the
Project
pane (select
View > Tool Windows > Project
from the menu bar). The default code, resources, and organization should be
similar to those of the standard app module.
After you implement a feature that you want to download on demand, learn how to
request it
using the Play Feature Delivery Library
.
Deploy your app
While you're developing your app with support for feature modules, you can
deploy your app to a connected device like you normally would by selecting
Run > Run
from the menu bar (or by clicking
Run
in
the toolbar).
If your app project includes one or more feature modules, you can
choose which features to include when deploying your app by modifying
your existing
run/debug configuration
as
follows:
- Select
Run > Edit Configurations
from the menu bar.
- From the left panel of the
Run/Debug Configurations
dialog, select
your desired
Android App
configuration.
- Under
Dynamic features to deploy
in the
General
tab, check the
box next to each feature module you want to include when
deploying your app.
- Click
OK
.
By default, Android Studio doesn't deploy your instant-enabled modules as an
instant experience or use app bundles to deploy your app. Instead, the IDE
builds and installs APKs to your device that are optimized for deployment speed,
rather than APK size. To configure Android Studio to instead build and deploy
APKs and instant experiences from an app bundle,
modify your run/debug
configuration
.