Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Androidビルドの可視化からはじめる継続的パフォーマンス改善

 Androidビルドの可視化からはじめる継続的パフォーマンス改善

2026/09/01-03 開催の「DroidKaigi 2026」ポスターセッションで発表した資料です。

株式会社ZOZO
ZOZOTOWN開発本部
ZOZOTOWN開発1部 Android1ブロック
愛川 功樹

株式会社ZOZO
ZOZOTOWN開発本部
ZOZOTOWN開発1部 Android1ブロック
高田 真壽

#DroidKaigi

Avatar for ZOZO Developers

ZOZO Developers PRO

September 01, 2026

More Decks by ZOZO Developers

Other Decks in Technology

Transcript

  1. DroidKaigi 2026 ポスターセッション Androidビルドの可視化から始める継続的パフォーマンス改善 愛川 功樹 / 高田 真壽(ZOZO) まとめ

    「計測 → 仮説 → 改善 → 再計測」のサイクルを回し、Kaptの適正化・モジュール分解・メモリチューニング・CIインフラ調整の4方向か らビルドパフォーマンスを継続的に改善しました。 40% ビルド速度改善 約 10% メモリ使用率改善 ビルド時間短縮 (Kapt最適化) ビフォー / アフター(ビルド時間) ビフォー 30mins アフター 18mins 計測 → 改善(Kapt最適化) 約 主な取り組み メモリチューニング 約40%短縮 RAM / Metaspace / Ratioを最適調整 → 再計測 背景・課題 ・ZOZOTOWN Androidは約77モジュールから構成されており、コードも約 45万行ある ・レガシーな依存関係が多数残存する ・CIでのクリーンビルドが約30分かかる ・モジュール構成が複雑化し、開発体験と生産性が悪化している 抑制 モジュール分解 粒度に分解し 負荷を分散 インフラ調整 GitHub Larger Runnerを ラベル制御で最適化 目的 ・ビルド時間のボトルネックとなる根本原因を解明する ・「計測 → 仮説 → 改善 → 再計測」のサイクルでビルド速度を改善 ・配布・リリースフローの効率化を図る アプローチ:AndroidBuildScanner ・Claude Codeを活用し自作Gradleプラグイン「AndroidBuildScanner」を開発 ・各モジュールのタスク実行時間・メモリ使用量・並列度をJSONで集計 ・Next.jsダッシュボードで可視化し、誰でも状況を把握できる状態に ・CIのMatrixで複数パラメータの組み合わせを並行実行し比較 ・GitHub Packages経由で社内公開、他チームでも利用可能に 可視化・計測のポイント タスク実行時間を可視化 メモリ使用量を可視化 並列度・実行環境を比較可能に 見えてきた課題 JSONで集計し再利用しやすく ・Kaptの肥大化:共有モジュールで必要有無に関わらず使用、不要モ ジュールにもメタデータ生成 ・app/legacyモジュールの肥大化:機能実装が集中し、小さな変更でも 広範囲の再ビルド・再テストが発生 ・メモリ負荷の増大:MetaspaceがCIマシン上限ギリギリ、Konsistの PSIツリーやVRTのPreview読み込みでOOM多発 今後の展望 ・appやlegacyモジュールの機能実装の分解を継続 ・Configuration Cacheの導入を検討 改善アプローチ ・Kapt:data binding依存箇所を整理し不要なKaptタスクを削減 → ビルド時 間40%短縮 ・モジュール分解:app/legacyモジュールの機能実装を適切な粒度に分解 ・メモリチューニング:RAM/Metaspace/MaxHeapFreeRatioを実測値 ベースで調整 ・VRT:実施時はVRTのみを実行し、かつRAMを個別調整する。VRTを実施 しない時は不要な読み込みを抑制 ・インフラ:日々のPRやリリース・hotfix作業において、GitHub Larger Runnerを活用。さらに、ラベル制御で重要度に合わせて柔軟に変更