日本のデベロッパーの方へ Google Play や Android に関する最新情報をお届け
最近の Android App Bundle の改善と新規アプリのスケジュール
2020年8月14日金曜日
この記事は Dom Elliott、Yafit Becher による Android Developers Blog の記事 "
Recent Android App Bundle improvements and timeline for new apps on Google Play
" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
Android App Bundle
が Google Play でアプリやゲームを公開する際の実質的な標準となってから、2 年あまりが経ちました。現在の実環境では、60 万以上のアプリやゲームで App Bundle が使われており、Google Play のすべてのリリースの 40% 以上を占めています。App Bundle は、Google Play のトップ デベロッパーの 50% が使用しています。たとえば Adobe の場合、App Bundle を使って
Adobe Acrobat Reader のサイズを 20% 削減しました
。
最近リリースした
Play Asset Delivery
(PAD)は、App Bundle による大きなメリットをゲームにもたらします。PAD を利用すると、配信コストとゲームのサイズを減らしつつ、ユーザー エクスペリエンスを向上させることができます。
Gameloft
は、PAD を使ってユーザーの維持率を高め、以前のアセット配信システムの使用時に比べて新規プレイヤーが 10% 増加しました。App Bundle を使うために必要な
Play App Signing に関するよくある質問
や
App Bundle のテスト方法
に関するガイダンスを公開しています。本記事では、App Bundle の開発、テスト、公開に関する最近行われた改善について説明します。
Google Play での機能配信
App Bundle を使うと、カスタマイズ可能な各種配信オプションを備えた動的機能モジュールによって
アプリ開発をモジュール化
できます。モジュール化したアプリを構築する際には、動的機能モジュールやベース モジュールの
リソースの縮小
もできるようになっています。この機能は長く待ち望まれてきたもので、アプリのサイズを大幅に削減できる可能性があります。この機能は、現在 Canary 版となっている Android Studio 4.2 以降で試験運用版フラグ
android.experimental.enableNewResourceShrinker=true
を指定すると利用できます。
デフォルトでは、App Bundle が配布用 APK に変換される際にインストール時モジュールが自動的に組み込まれます(bundletool 1.0.0 以降)。つまり、各端末に配布する APK の数を減らしつつ、開発時にアプリをモジュールに分割できます。これにより、アプリのダウンロードやインストールにかかる時間が短くなります。インストール時モジュールには「削除可能フラグ」を設定することもできます。その場合、組み込みが行われなくなるので、モジュールの使用後に端末からアンインストールできるようになります。大きなモジュールが不要になった場合は、削除するとよいでしょう。アプリのサイズを減らすことで、アンインストールされる可能性が低くなります。
Android Studio 4.0
では、
機能間の依存性
が安定版になっています。そのため、動的機能モジュールが他の機能モジュールに依存するように指定できます。この関係を定義できることで、アプリで追加機能を解放するために必要なモジュールが存在することを保証でき、その結果リクエストが少なくなり、アプリのモジュール化が簡単になります。
アプリの配信のテスト
で実際のユーザーと同じ操作を行ってみることが不可欠です。内部アプリ共有を使うと、テストビルドを Play にアップロードし、アプリをダウンロードできる共有可能なリンクを生成できます。このリンクからアプリをダウンロードすると、アプリを Play にリリースしたときにユーザーに提供されるものと同じバイナリを取得できます。
Play Asset Delivery
Play Asset Delivery は、App Bundle のフォーマットを拡張し、Google Play で公開する単一アーティファクトのバイナリと合わせて
最大 2 GB のゲームアセット
を格納できるようにします。PAD を使うと、150 MB 以上のゲームは以前の拡張ファイル(OBB)ではなく、ゲームのバイナリと同じように Google Play の機能を使ってアセットを最新に保つようになります。さらに、圧縮や差分パッチの対応、ダウンロード サイズの最小化、アップデートの高速化も行われます。
1 つのベース モジュール、2 つの動的機能モジュール、2 つのアセットパックのある Android App Bundle の内容
アセットをユーザーに配信するタイミングに応じて、3 つの配信モードから選択できます。
install-time
は、最初のゲームのインストールとともに配信します。
on-demand
は、リクエストされたときにのみ配信します。
fast-follow
は、ユーザーがアプリを開く操作とは関係なく、ゲームのインストールが完了した直後に追加ダウンロードが行われます。fast-follow を使うと、最初のインタラクションまでの時間を短縮しつつ、アセットをできる限り早くユーザーに配信できます。
今後数か月のうちに、
テクスチャ圧縮フォーマットのターゲット指定
をリリースする予定です。これを使うと、複数のテクスチャ圧縮フォーマットのアセットを含めておき、リクエストする端末がサポートする最も高度なフォーマットを自動選択して配信できるようになります。
詳細については、Game Developer Summit の
こちらのセッション
をご覧ください。また、Unity、Unreal Engine、Gradle、ネイティブ、Java のサポート オプションについては、
ドキュメント
をご覧ください。
Google Play による高品質の配信
Google Play は、無数の種類の端末を使う世界中の Android ユーザーに、毎月数十億のアプリやゲーム、アップデート、動的機能モジュールを配信しています。私たちは、ユーザー エクスペリエンスが複雑にならないようにしつつ、皆さんのコンテンツをできる限りシームレスかつ効率的にユーザーに配信するため、多くの時間と労力を費やしています。
たとえば最近では、Google Play で利用しているダウンロード サービスをアップグレードしました。この変更だけで、App Bundle によるアプリのインストールが平均 6% 高速化され、世界のインストール成功率が 1% 上昇しました。その結果、毎週のインストール数は数百万回増加しました。
また、
動的機能モジュールの配信に関する複数の改善
をロールアウトしています。たとえば、アプリが
VISIBLE
以上の場合にモジュールのインストールを許可する、ストレージ不足エラーのしきい値となる空き領域を下げる、大きな動的機能を Wi-Fi でダウンロードする際のユーザーの確認を省略するなどです。これだけで、モジュールの遅延ダウンロードの成功率が 12% 上昇しました。動的機能を使うアプリでは、自動的にこの変更によるメリットが得られます。
2021 年下半期の新規アプリ要件
引き続き、Google Play で App Bundle を APK よりも優れた公開フォーマットにするための作業に取り組んでいます。たとえば、新しい
App Bundle Explorer
を使うと、すべての App Bundle を 1 か所で管理できます。Play が配信用に生成する APK そのものや、別の配信チャンネルで使用できる署名されたユニバーサル APK(サポート対象の端末に必要なすべてのコードやリソースを含む 1 つのインストール可能 APK)をダウンロードして確認することもできます。
App Bundle がアプリやゲームのエコシステムに広く普及することを大変嬉しく思っており、今後もその改善を続けてゆきます。
Android 11 のイベントでお知らせしましたが
、今後の改善に向けた労力を集中させるため、
2021 年の下半期には、Google Play で新しいアプリやゲームを公開する際に
Android App Bundle
の使用が必須になる予定です。
同じタイミングで、以前の APK 拡張ファイル(OBB)のサポートを終了し、
Play Asset Delivery
が、150 MB 以上のゲームを公開する際の標準オプションになります。また、インスタント対応には
インスタント対応 App Bundle
による公開を必須とし、以前の Instant App の ZIP フォーマットのサポートを終了する予定です。
既に Android App Bundle に切り替えてくださっている皆さま、また、フィードバックを共有してくださった皆さま、ありがとうございます。皆さまのご意見は、App Bundle の将来を形作り、あらゆる人に向けたテクノロジーを改善するために役立ちます。ぜひ今後も感想をお知らせください。
Reviewed by
Yuichi Araki - Developer Relations Team
ラベル
#11WeeksOfAndroid
17
AI
1
Android
37
Android 10
1
Android 11
18
Android 11 Compatibility
1
Android 9
1
Android App Development
23
Android Architecture
1
Android Architecture Components
1
Android Dev
1
Android Developer
25
Android Developers
2
Android for cars
2
Android Jetpack
2
Android O
1
android security
5
Android Studio
7
Android Tools
2
Android TV
2
AndroidX
1
App Bundle
2
Best Apps 2020
1
Best games 2020
1
Best Practices
1
Biometrics
1
Buildbetterapps
2
case study
1
compatibility
1
Compose
1
Conversation API
1
conversations
2
COVID-19
1
Custom Model
1
dark theme
1
Delegation
1
Design Patterns
1
Developer Review
1
Developers Story
4
Featured
20
Firebase
1
Firebase Remote Config
1
game
2
Google Play
37
Google Play App Safety
1
Google Play Billing
1
Google Play Billing Library
1
Google Play developer distribution agreement
1
Google Play Developer Policies
2
Google Play Devs
2
Google Play Game Services
1
Google Play Store
1
GPS
1
IGF2020
6
Indie Game
7
Indie Games Festival
7
Indie Games Festival 2020
7
Insights
1
Japanese
12
Japanese Developer
8
Jetpack
2
Jetpack Compose
2
Kotlin
10
Kotlin Android Extensions
1
Kotlin Beginners
3
Kotlin Vocabulary
2
latest
17
lifull
1
Location
1
Location Data
1
Machine Learning
1
Mad Skills
2
MADSkills
2
Material Design
1
mikan
1
ML
1
ML Kit
1
Model Maker
1
monetization
2
Navigation
1
notifications
1
Now in Android
12
people
2
People API
1
permissions
1
Pixel
1
Play Billing
1
Play Console
9
Policy
8
policy compliance
8
policy violations
8
privacy
4
Requirements
2
safety
1
Security
3
subscriptions
4
tapple
1
TensorFlow
2
TensorFlow Lite
1
Wear OS
1
ブログ アーカイブ
2021
1
2020
12
11
10
9
8
7
6
5
4
3
2
1
2019
12
9
7
6
4
3
2018
8
Feed
Follow @googledevjp
"プロダクトに関するご意見は
プロダクトフォーラム
にお願いします"