大体↑の内容のかいつまみです。間違い等あればご指摘いただけると助かります…
Android Instant Apps とは
Android Developer に詳しく書かれているので詳細は省略させていただきますが、短く言えば
ストアの「今すぐ試す」ボタンからインストールせずに体験してもらえるアプリ
です。
インストールせずに使ってもらえるので、ユーザーに触ってもらいやすくなるなどのメリットがあります。
過去の Android Instant Apps
これまでの Android Instant Apps の実装は楽とは言えない実装でした。
モジュール分割・App Links 対応など、既存のアプリをあとから対応させるには手間がかかり、対応を後回しにし続けた結果、対応せずに放っておかれてしまった…などの経験もあるかと思います。
Android Studio 3.3 からは
App Bundle を使用している場合に限り、より簡単に Android Instant Apps 対応ができるようになりました。
今回は単一モジュールの場合について書いていきます。複数モジュールの場合はまた今度…
その際に必要なもの
- Android Studio 3.3 以上
- Google Play Instant Development SDK
- なければ メニューの [Tool]→[SDK Manager]→[SDK Tools]からインストールできます。
- Android 5.0(API Level 21)以上のデバイス(エミュレータでもOK)
- Android Instant Apps のテスト動作に Android 5.0 以上が必要なため
その際の制限は以下です。
- モジュールの容量は10MB以下。(リソースを含めて)
- 使用できるパーミッションは以下のみ。
- ACCESS_COARSE_LOCATION
- ACCESS_FINE_LOCATION
- ACCESS_NETWORK_STATE
- BILLING
- CAMERA
- INSTANT_APP_FOREGROUND_SERVICE
- Android 8.0(API Level 26) 以上限定
- INTERNET
- READ_PHONE_NUMBERS
- Android 8.0(API Level 26) 以上限定
- RECORD_AUDIO
- VIBRATE
- WAKE_LOCK
手順
- Instant Apps をサポートしたいモジュールの
AndroidManifest.xml
を開き、
<manifest
(略)
xmlns:dist="http://schemas.android.com/apk/distribution">
<dist:module dist:instant="true" />
</manifest>
のように xmlns:dist
で始まる行を追加し、そのタグの中に <dist:module dist:instant="true" />
の一文を追加する。
これだけでできてしまうようになりました。
過去に Instant Apps 対応していた人からすれば、かなり簡単になっているかと思います。また、リソース含めた容量も 10MB となっているので、簡単なツールのアプリなら、すぐに対応できるかもしれません。
確認手順
Run/Debug Configurationsのダイアログを開き、Deploy as instant app
のチェックを付けてデバッグ・実行すれば Instant Apps で実行されたものとしてデバッグできます。上記のパーミッション関連で挙動が変化してしまうこともあるので、しっかり確認して手を入れる必要がある場所があれば手を入れましょう。
コード内で Instant Apps で実行されているかを確認する方法
InstantApps.isInstantApp(applicationContext)
以上の式で確認できます。1, 2か所動作を変える必要がある場合など、うまく活用しましょう。