عملکرد ساخت اندروید

این صفحه حاوی اطلاعاتی در مورد بهینه سازی عملکرد ساخت برای برنامه های اندروید است. برای بهینه سازی کلی عملکرد ساخت با Bazel، به بهینه سازی عملکرد مراجعه کنید.

پرچم‌ها در نحو پیکربندی bazelrc هستند ، بنابراین می‌توان آنها را مستقیماً در یک فایل bazelrc قرار داد و با --config=<configuration_name> در خط فرمان فراخوانی کرد.

عملکرد پروفایل

Bazel یک پروفایل ردیابی JSON به طور پیش فرض در فایلی به نام command.profile.gz در پایگاه خروجی Bazel می نویسد. برای نحوه خواندن و تعامل با نمایه به اسناد نمایه JSON مراجعه کنید.

کارگران مداوم برای Android build actions .

زیرمجموعه ای از اقدامات ساخت Android از کارگران مداوم پشتیبانی می کند.

یادگاری این اقدامات عبارتند از:

  • دکس بیلدر
  • جاواک
  • دشکر
  • بسته Aapt
  • AndroidResourceParser
  • AndroidResourceValidator
  • AndroidResourceCompiler
  • RClass Generator
  • 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 است. ما عملکرد ساخت بهبود یافته را با محدود کردن تعداد نمونه‌ها برای هر اقدام به 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 ، از پرچم --android_aapt=aapt2 استفاده کنید یا aapt2 را روی aapt_version در android_binary و android_local_test تنظیم کنید.

بهینه سازی SSD

پرچم --experimental_multi_threaded_digest برای بهینه سازی محاسبه خلاصه در SSD مفید است.