این سند تفاوت بین پروفایلهای پایه و پروفایلهای راهاندازی را توضیح میدهد.
شما میتوانید از افزونه Gradle پروفایل پایه (Baseline Profile Gradle Plugin) برای ثبت خودکار فایلهای پروفایل پایه قابل خواندن توسط انسان که توسط تستهای BaselineProfileRule تولید میشوند، استفاده کنید. هنگام ساخت برنامه، افزونه Gradle اندروید (AGP) این قوانین پروفایل قابل خواندن توسط انسان را در قالبی دودویی کامپایل میکند که به عنوان baseline.prof در کیت بستهبندی اندروید (APK) یا بسته نرمافزاری اندروید (AAB) بستهبندی میشود، که Android Runtime (ART) میتواند به طور مؤثر برای کامپایل روی دستگاه از آن استفاده کند، مشروط بر اینکه پروفایل دودویی کوچکتر از ۱.۵ مگابایت باشد.
فایلهای پروفایل تولید شده معمولاً startup-prof.txt و baseline-prof.txt نام دارند.
مشخصات پایه
فایل Baseline Profile شامل مجموعهای جامع از قوانین است که ART برای پیشکامپایل کردن مسیرهای کد پرکاربرد از آنها استفاده میکند، که باعث بهینهسازی راهاندازی برنامه، کاهش تداخلات و بهبود عملکرد کلی زمان اجرا میشود.
فایل Baseline Profile عموماً مجموعهای از قوانین موجود در Startup Profile شما است. این فایل شامل تمام قوانین مورد نیاز برای بهینهسازی شروع به کار برنامه (که از طریق وظیفه baselineProfile Gradle تولید میشود) به همراه پروفایلهای اضافی برای سایر مسیرهای حیاتی کاربر است. به عنوان مثال، پیمایش و پیمایش صفحات مختلف.
این قوانین غیر راهاندازی صرف نظر از مقدار فیلد پیکربندی includeInStartupProfile ایجاد میشوند. برای اطلاعات بیشتر، به «مروری بر پروفایلهای پایه» مراجعه کنید.
پروفایل استارتاپ
فایل Startup Profile شامل قوانینی است که به طور خاص برای مسیر راهاندازی برنامه شما بهینه شدهاند. در طول کامپایل، D8 و R8 از بایتکد جاوا برای تولید فایلهای اجرایی Dalvik (DEX) استفاده میکنند. هر دو D8 و R8 از Startup Profiles برای بهینهسازی طرحبندی DEX با قرار دادن کد راهاندازی حیاتی در فایل .dex اصلی برای بارگذاری سریعتر کلاس استفاده میکنند. برای دستیابی به مهمترین دستاوردهای عملکرد، کد راهاندازی باید در این فایل .dex اصلی قرار گیرد. اگر اندازه تجمعی کد راهاندازی خیلی بزرگ باشد، به فایلهای DEX بعدی سرریز میشود که اغلب با کلاسها و متدهای غیرضروری پر شدهاند و راهاندازی را کند میکنند.
در حالی که یک پروفایل راهاندازی، فرادادههای لازم برای بهینهسازی طرحبندی DEX را فراهم میکند، بهینهسازی کد R8 میتواند در کمک به این فرآیند بسیار مؤثر باشد. با حذف کدهای استفاده نشده و کوچکسازی بایتکد، R8 حجم کل منطق راهاندازی را کاهش میدهد. این کاهش احتمال باقی ماندن کد حیاتی در فایل .dex اصلی را افزایش میدهد و از سرریز جلوگیری میکند و اجرای کارآمدتر را در طیف وسیعتری از نسخههای اندروید تضمین میکند. شما معمولاً باید includeInStartupProfile فقط برای سناریوهای آزمایشی ضروری برای نمایش اولیه برنامه، روی true تنظیم کنید.
برای اطلاعات بیشتر، به «مروری بر پروفایلهای استارتاپ» مراجعه کنید.