این صفحه حاوی اطلاعاتی در مورد بهینه سازی عملکرد ساخت برای برنامه های اندروید است. برای بهینه سازی کلی عملکرد ساخت با 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 مفید است.