1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Android Studio 3.3 で Android Instant Apps に簡単に対応させる

Last updated at Posted at 2019-04-27

大体↑の内容のかいつまみです。間違い等あればご指摘いただけると助かります…

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

手順

  1. 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か所動作を変える必要がある場合など、うまく活用しましょう。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?