Android Derlemesi Performansı

. Sorun bildirin Kaynağı göster Gece · 7,3 · 7,2 · 7,1 · 7,0 · 6,5

Bu sayfada, Android için derleme performansını optimize etmeyle ilgili bilgiler yer alır. örneğine bakalım. Bazel ile genel derleme performansı optimizasyonu için bkz. Performansı Optimize Etme

İşaretler bazelrc yapılandırması söz dizimi; doğrudan bir bazelrc dosyasına yapıştırılıp komut satırında --config=<configuration_name>.

Profil oluşturma performansı

Bazel, varsayılan olarak Bazel'in çıktı tabanında command.profile.gz. Şu konular için JSON Profili dokümanlarına bakın: profili okuma ve profille etkileşim kurma.

Android derleme işlemleri için kalıcı çalışanlar.

Android derleme işlemlerinin bir alt kümesi kalıcı çalışanlar.

Bu işlemlerin anımsatıcılar şunlardır:

  • DexBuilder
  • Java
  • Tatlı
  • AaptPackage
  • AndroidResourceParser
  • AndroidResourceValidator
  • AndroidResourceCompiler
  • RClassGenerator
  • AndroidResourceLink
  • AndroidAapt2
  • AndroidAssetMerger
  • AndroidResourceMerger
  • AndroidCompiledResourceMerger

Çalışanları etkinleştirmek, JVM'den tasarruf ederek daha iyi derleme performansı sağlayabilir bu araçların her birinin çağrılmasından kaynaklanan bir başlangıç maliyeti yaratmakla birlikte, sistemdeki bellek kullanımlarını etkileyebilir.

Çalışanları bu işlemlerde etkinleştirmek için bu işaretleri Komut satırında --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

İşlem başına oluşturulan varsayılan kalıcı çalışan sayısı: 4. Şu anda İyileştirilmiş derleme performansını ölçtü her işlem için örnek sayısını 1 veya 2 olarak sınırlayarak, Bazel'in şu anda üzerinde çalıştığı sisteme ve projenin geliştirmenizi sağlar.

Bir işlem için örnek sayısını sınırlamak amacıyla şu işaretleri uygulayın:

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'yi kullanma

aapt2 iyileştirildi daha küçük APK'lar oluşturur.aapt aapt2 özelliğini kullanmak için --android_aapt=aapt2 bayrağı veya şurada aapt2 ayarlayın: aapt_version android_binary ve android_local_test.

SSD optimizasyonları

--experimental_multi_threaded_digest işareti, özeti optimize etmek için faydalıdır daha iyi performans gösterir.