この記事は Leo Sei (Product Manager on Android Studio and R8) による Android Developers Blog の記事 "R8, the new code shrinker from Google, is available in Android studio 3.3 beta" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

Android デベロッパーの皆さんは、APK のサイズがユーザー エンゲージメントにおける重要な要素であることをご存知でしょう。APK のサイズは、コードを圧縮することで縮小できます。コードの圧縮は、不要なコードやリソースを削除すると同時に、実行されるコードの容量を削減する機能です(コードの「軽量化」とも呼ばれ、「難読化」によっても達成されます)。

そのため Google では、コードの圧縮をより高速かつ効率的に実行できるよう改良を重ねています。そしてこのたび、次世代のコード圧縮ツール「R8」のプレビュー版が Android Studio 3.3 ベータ版でご利用いただけるようになりました。(追記:Android Atudio 3.3.1でもご利用いただけます)

R8 では、圧縮、desugar、dex をまとめて一度に実行できます。現在のコード圧縮ソリューションである ProGuard と比較すると、R8 ではコードの圧縮にかかる時間が短縮され、出力サイズもより小さくなっています。

以下のデータは、「Google サンタを追いかけよう」アプリでのベンチマークの結果です。このプロジェクトとベンチマークの詳細については、こちらの GitHub リポジトリでご覧いただけます。

R8 を試用するには

R8 は Android Studio 3.3 ベータ版で利用でき、ProGuard ルールに対応しています。R8 を試してみる場合は、プロジェクトの gradle.properties ファイルで次のように設定してください。

android.enableR8=true


R8 を本格的に使用できる完全モードを試すことも可能です(ただし、このモードは ProGuard との直接の互換性はありません)。こちらを試すには、gradle.properties ファイルに次の設定を追加します。

android.enableR8.fullMode=true


この設定によってさらなる最適化が可能になり、アプリのサイズをさらに削減できます。ただし、そのためには追加の保持ルールがいくつか必要となる場合があります。
Google では多数のアプリで R8 をテストし、その正確性とパフォーマンスについて有望な結果が得られたことから、Android Studio のデフォルトの圧縮ツールをまもなく R8 に切り替える予定です。

ぜひ R8 をお試しのうえ、ご意見やご感想をお聞かせください。バグレポートをお送りいただく際は、こちらのリンクをご利用いただけます。(追記:リンクにアクセスするにはAndroid開発者登録されたGoogleアカウントが必要です)

Reviewed by Tomoko Tanaka - Developer Product Marketing Manager, Google Play