Android ビルド パフォーマンス

<ph type="x-smartling-placeholder"></ph> 問題を報告する <ph type="x-smartling-placeholder"></ph> ソースを表示 夜間 · 7.3 · 7.2 · 7.1 · 7.0 · 6.5

このページには、Android のビルド パフォーマンスの最適化に関する情報が掲載されています 特定することですBazel を使用した一般的なビルド パフォーマンスの最適化については、以下をご覧ください。 パフォーマンスの最適化

フラグは bazelrc 構成構文なので、 bazelrc ファイルに直接貼り付け、 コマンドラインで --config=<configuration_name> を実行します。

パフォーマンスのプロファイリング

Bazel はデフォルトで JSON トレース プロファイルを Bazel の出力ベースの command.profile.gzJSON プロファイルのドキュメント プロフィールの閲覧と操作の方法。

Android ビルド アクション用の永続ワーカー

Android ビルド アクションのサブセットがサポートしている 永続ワーカー

これらのアクション覚えておいてください。

  • DexBuilder
  • Javac
  • 脱糖
  • AaptPackage
  • AndroidResourceParser
  • AndroidResourceValidator
  • AndroidResourceCompiler
  • RClassGenerator
  • AndroidResourceLink
  • AndroidAapt2
  • AndroidAssetMerger
  • AndroidResourceMerger
  • AndroidCompiledResourceMerger

ワーカーを有効にすると、JVM を節約してビルドのパフォーマンスを向上させることができます。 各ツールの起動には費用がかかりますが 永続化することでシステムのメモリ使用量を削減できます。

これらのアクションでワーカーを有効にするには、 コマンドラインで --config=android_workers を実行します。

build:android_workers --strategy=DexBuilder=worker
build:android_workers --strategy=Javac=worker
build:android_workers --strategy=Desugar=worker

# A wrapper flag for these resource processing actions:
# - AndroidResourceParser
# - AndroidResourceValidator
# - AndroidResourceCompiler
# - RClassGenerator
# - AndroidResourceLink
# - AndroidAapt2
# - AndroidAssetMerger
# - AndroidResourceMerger
# - AndroidCompiledResourceMerger
build:android_workers --persistent_android_resource_processor

アクションごとに作成される永続ワーカーのデフォルト数は 4 です。Google には 各アクションのインスタンス数を 1 または 2 に制限します。ただし、 Bazel が実行されているシステムや、対象のプロジェクトによって 構築しました。

アクションのインスタンス数の上限を設定するには、次のフラグを適用します。

build:android_workers --worker_max_instances=DexBuilder=2
build:android_workers --worker_max_instances=Javac=2
build:android_workers --worker_max_instances=Desugar=2
build:android_workers --worker_max_instances=AaptPackage=2
# .. and so on for each action you're interested in.

AAPT2 の使用

aapt2 が改良されました aapt でのパフォーマンスを維持し、APK のサイズを小さくすることもできます。aapt2 を使用するには、次のコマンドを使用します。 aapt_version--android_aapt=aapt2 フラグを設定するか、aapt2 を設定します。 android_binaryandroid_local_test

SSD の最適化

--experimental_multi_threaded_digest フラグはダイジェストの最適化に役立ちます。 SSD での計算に使用されます。