
[TECH] ANDROID APP BUNDLE (AAB) の利点とそのテスト方法
アプリ サービスの成長には、ユーザーによる新規ダウンロード数と新規アプリ インストール数を増やすことが重要です。
Google のレポートによると、アプリ パッケージのサイズはアプリのダウンロードに非常に重要な役割を果たしているため、当社はサイズ削減に取り組んできました。しかし、Google Play の最近の 64 ビット サポート ポリシーは、パッケージ サイズの増加に関する話題となっています。
この記事では、アプリ パッケージ サイズの増加に対処するための ANDROID APP BUNDLE (AAB) について説明し、AAB への移行時にアプリを簡単にテストする方法も紹介します。
Google によると、アプリ パッケージの容量は 2012 年 3 月から 2018 年 1 月にかけて 5 倍に増加しており、アプリ パッケージはアプリのダウンロードにおいて重要な役割を果たしています。
また、アプリ パッケージ サイズが 6 MB 増加するごとに、移行率が大幅に低下するとも述べています。

従来の Android システムでは、32 ビット ネイティブ ライブラリが満たされていれば、32 ビット モードだけでなく 64 ビットでもデバイスが正常に動作できました。さらに、Houdini システムを介してネイティブ ライブラリを追加しなくても、x86 デバイスで正常に動作させることができました。
ただし、この 64 ビット サポート ポリシーでは、64 ビット用のネイティブ ライブラリを構築してパッケージに追加する必要があるため、アプリ パッケージの容量が必然的に大きくなります。
特に、UNITY を使用するアプリでは IL2CPP モードを使用して 64 ビットをサポートする必要があり、アプリが 32 ビットと 64 ビットの両方にパッケージ化されている場合、アプリ パッケージのサイズの増加がすぐにわかります。

ANDROID アプリ バンドル (AAB)
Google の AAB の利点を以下にまとめます。
[ ANDROID APP BUNDLE ]
- ユーザーがアプリをダウンロードする際のダウンロード サイズとディスク割り当てサイズを削減します。
- ユーザーのデバイスではなく APK に保存されているデフォルトの非圧縮ライブラリ (Android 6.0 以降) を使用して、ダウンロード サイズ、ディスク割り当てサイズ、およびインストール時間を削減します。
- 機能と設定は、アプリのインストール プロセス中ではなく、ユーザーからの要求時に提供されます。
- APK の構築と公開が不要なため、効率的な構築と起動の管理が可能になります。
Android Studio と UNITY を使用すると、ユーザーはいくつかの設定を変更するだけで、既存のアプリ パッケージを AAB に簡単に変換できます。
以下の情報は、既存のアプリ パッケージが AAB に切り替わったときの構造を示しています。

AAB TEST
1. GOOGLE PLAY BETA TEST に登録する
2. 開発環境に接続されたデバイスに直接インストールする
1 の場合、テスターのアカウントを BETA TEST に追加することでテストを行うことができます。
多くの開発者と QA スタッフは、既存の APK をテストする際に、方法 2 を最もよく使用していたでしょう。
APK ファイルの状態では、アプリ ファイルはデバイスに直接インストールされ、テストされてアプリの QA が進められますが、AAB に変換すると、既存の adb を使用したデバイスのインストールは不可能になり、アプリ ファイルは bundletool というツールを使用してのみデバイスにインストールできます。
Bundletool を使用してデバイスに apk ファイルをインストールするには、「aab」ファイルを「apks」に変換し、apks をデバイスに「インストール」する必要があります。
Bundletool を使用して AAB ファイルを APK に変換する場合、オプションに応じてモードは通常、次の 2 つに分かれます。
[ AAB INSTALL ]
AAB -> APKs -> インストール
[ APKs Mode ]
APKs ( 動的機能モジュール )
APKs ( ユニバーサル モジュール )
モード変換のコマンドは次のとおりです。
APKs ( dynamic feature modules )
java -jar "bundletool-all-0.10.0.jar" build-apks --bundle="your.aab" --output="dynamic.apks"
APKs ( universal module )
java -jar "bundletool-all-0.10.0.jar" build-apks --mode=universal --bundle="your.aab" --output="universal.apks"
抽出した APK を使用して、デバイスへのインストールを次のように進めることができます:
[ APKs ( dynamic feature modules ) '--connected-device']
java -jar "bundletool-all-0.10.0.jar" build-apks --connected-device --bundle="your.aab" --output="dynamic.apks"
[ bundletool install ]
java -jar "bundletool-all-0.10.0.jar" install-apks --apks="dynamic.apks"
ビルドされた AAB に LIAPP などのアプリ セキュリティ サービスを適用してアプリ パッケージが変更された場合は、jarsigner を使用してアプリ署名をパッシブに実行できます。
[ AAB SIGNING ]
jarsigner -verbose -sigalg SHA256withRSA -digestalg SHA-256 -keystore [キーストア ファイル パス] [署名するアプリのパス] [キーの生成時に作成された alias_name]
ex. jarsigner -verbose -sigalg SHA256withRSA -digestalg SHA-256 -keystore /your.keystore /your.aab LOCKINCOMPANY
これまで、AAB と TEST メソッドの構造と利点について説明しました。この投稿で示した例は、最も一般的で使いやすいコマンド ラインです。追加のオプションで利用できる機能をさらに確認すると役立ちます。
LIAPP は、常に革新的なサービスの成功を応援しています。