日本のデベロッパーの方へ 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
18
#Android12
1
#AndroidDevJourney
1
#androiddevsummit
3
#GoogleIO
13
12l
1
5 star apps
1
AGDE
1
AGDK
2
AGI
1
AI
1
Android
80
Android 10
1
Android 11
1
Android 12 Beta 5
1
Android App Development
40
Android app excellence
1
Android Architecture
1
Android Architecture Components
1
Android Auto
3
Android Automotive OS
1
Android Dev
2
Android Dev Summit 2021
1
Android Developer
29
Android Developers
29
Android Development
7
Android Development Tools
1
Android for cars
5
Android Game Development Kit
1
Android Games
1
Android Jetpack
8
Android O
1
android security
7
Android Studio
22
Android Studio Bumblebee
1
Android Studio Dolphin Beta
1
Android Studio Electric Eel Canary
1
Android Tools
2
Android TV
2
Android10
1
Android11
19
Android12
13
android13
3
Android9
1
androidbasics
1
AndroidDev
1
AndroidDevChallenge
4
androidstudio
1
AndroidX
2
announcement
2
Announcements
2
App
2
App Bundle
2
app lifecycle
1
app performance
1
App quality
3
appexcellence
2
appexcellencecasestudy
1
appquality
2
AppWidgets
1
Architecture
1
attestation
1
Best Apps 2020
1
Best games 2020
1
Best Practices
1
Biometrics
1
Buildbetterapps
2
CameraX
1
case study
4
compatibility
2
Compose
9
Conversation API
1
conversations
2
COVID-19
3
Custom Model
1
Dagger Hilt
1
dark theme
1
Delegation
1
Dependency Injection
1
Design Patterns
1
Develop
1
Developer Preview
10
Developer Review
1
Developers Story
5
devices
1
events
1
Featured
119
features
1
Firebase
1
Firebase Remote Config
1
foldables
5
form factors
1
game
15
Game Development
2
Game Mode API
1
gaming
1
Get Inspired
1
glance
1
Google for Games Developer Summit
1
Google Play
79
Google Play App Safety
1
Google Play Billing
2
Google Play Billing Library
1
Google Play Console
1
Google Play developer distribution agreement
1
Google Play Developer Policies
2
Google Play Devs
2
Google Play Game Services
1
Google Play Games
2
Google Play Store
2
GoogleIO
2
GPS
1
IGF2020
6
IGF2021
9
Indie Game
16
Indie Games Festival
16
Indie Games Festival 2020
7
Indie Games Festival 2021
9
indies
1
Insights
1
Japanese
15
Japanese Developer
9
Jetpack
13
Jetpack Compose
11
JetpackCompose
4
key
1
keymaster
1
keymint
1
keystore
1
Kotlin
18
Kotlin Android Extensions
1
Kotlin Beginners
3
Kotlin Symbol Processing
1
Kotlin Vocabulary
2
Large Screens
5
large_screens
1
latest
113
lifull
1
Location
1
Location Data
1
Machine Learning
1
Mad Skills
3
MADSkills
3
Material Design
3
material you
4
Media
7
mikan
1
ML
1
ML Kit
1
Model Maker
1
monetization
3
multiplatform apps
1
Navigation
1
notifications
2
Now in Android
19
people
2
People API
1
Performance
4
permissions
1
Pixel
1
Platform_Update
9
Platform_Updates
1
play
1
Play Billing
1
Play Console
19
Play Store
1
Policies
5
Policy
10
policy compliance
8
policy violations
8
privacy
22
Programming
1
provisioning
1
Requirements
3
Resources
1
safety
1
Security
8
stable
1
Story
3
subscriptions
5
Tablets
4
tapple
1
TensorFlow
2
TensorFlow Lite
1
Testing
1
Tools
1
training
1
UI
1
UX
1
wear
1
Wear OS
5
wearos
1
webinar
2
Women in Gaming
1
Workmanager
2
ブログ アーカイブ
2022
6
5
4
3
1
2021
12
11
10
9
8
7
6
5
4
3
2
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
"プロダクトに関するご意見は
プロダクトフォーラム
にお願いします"