برای بهترین تجربه کاربری، باید برنامه خود را بهینه کنید تا تا حد امکان کوچک و سریع شود. بهینهساز برنامه ما، که R8 نام دارد، با حذف کدها و منابع بلااستفاده، بازنویسی کد برای بهینهسازی عملکرد زمان اجرا و موارد دیگر، برنامه شما را ساده میکند. برای کاربران شما، این به معنای:
- زمان راهاندازی سریعتر
- بهبود عملکرد رندر و زمان اجرا
- تعداد کمتر ANR
برای فعال کردن بهینهسازی برنامه، همانطور که در کد زیر نشان داده شده است، در اسکریپت ساخت سطح برنامه نسخه آزمایشی خود isMinifyEnabled = true (برای بهینهسازی کد) و isShrinkResources = true (برای بهینهسازی منابع) را تنظیم کنید. توصیه میکنیم همیشه هر دو تنظیم را فعال کنید. همچنین توصیه میکنیم بهینهسازی برنامه را فقط در نسخه نهایی برنامه خود که قبل از انتشار آزمایش میکنید - معمولاً نسخه آزمایشی شما - فعال کنید، زیرا بهینهسازیها زمان ساخت پروژه شما را افزایش میدهند و میتوانند به دلیل نحوه تغییر کد، اشکالزدایی را سختتر کنند.
کاتلین
android { buildTypes { release { // Enables code-related app optimization. isMinifyEnabled = true // Enables resource shrinking. isShrinkResources = true proguardFiles( // Default file with automatically generated optimization rules. getDefaultProguardFile("proguard-android-optimize.txt"), ... ) ... } } ... }
گرووی
android { buildTypes { release { // Enables code-related app optimization. minifyEnabled true // Enables resource shrinking. shrinkResources true // Default file with automatically generated optimization rules. proguardFiles getDefaultProguardFile('proguard-android-optimize.txt') ... } } }
بهینهسازی کاهش منابع برای برنامههای حتی کوچکتر
نسخه ۸.۱۲.۰ افزونه اندروید گریدل (AGP) قابلیت بهینهسازی کاهش منابع را معرفی میکند که هدف آن ادغام بهینهسازی منابع و کد برای ایجاد برنامههای کوچکتر و سریعتر است.
فعال کردن کاهش بهینه منابع
برای فعال کردن خط لوله جدید بهینهسازیشده برای کاهش منابع برای نسخههای قبل از ۹.۰.۰ از AGP، موارد زیر را به فایل gradle.properties پروژه خود اضافه کنید:
android.r8.optimizedResourceShrinking=true
اگر از AGP 9.0.0 یا نسخه جدیدتر استفاده میکنید، نیازی به تنظیم android.r8.optimizedResourceShrinking=true ندارید. کاهش بهینه منابع به طور خودکار زمانی اعمال میشود که isShrinkResources = true در پیکربندی ساخت شما فعال باشد.
تنظیمات بهینهسازی R8 را تأیید و پیکربندی کنید
برای اینکه R8 بتواند از تمام قابلیتهای بهینهسازی خود استفاده کند، در صورت وجود، خط زیر را از فایل gradle.properties پروژه خود حذف کنید:
android.enableR8.fullMode=false # Remove this line from your codebase.
توجه داشته باشید که فعال کردن بهینهسازی برنامه، درک ردپاهای پشته را دشوار میکند، به خصوص اگر R8 نام کلاسها یا متدها را تغییر دهد. برای دریافت ردپاهای پشتهای که به درستی با کد منبع شما مطابقت دارند، به بازیابی ردپاهای پشته اصلی مراجعه کنید.
اگر R8 فعال باشد، باید برای عملکرد بهتر در هنگام راهاندازی، پروفایلهای راهاندازی (Startup Profiles) نیز ایجاد کنید .
اگر بهینهسازی برنامه را فعال کردهاید و باعث ایجاد خطا میشود، در اینجا چند راهکار برای رفع آنها آورده شده است:
- برای اینکه بعضی از کدها دست نخورده باقی بمانند ، قوانین keep را اضافه کنید .
- بهینهسازیها را به صورت تدریجی اتخاذ کنید .
- کد خود را بهروزرسانی کنید تا از کتابخانههایی استفاده کنید که برای بهینهسازی مناسبتر هستند .
اگر به بهینهسازی سرعت ساخت خود علاقهمند هستید، برای کسب اطلاعات در مورد نحوه پیکربندی R8 بر اساس محیط خود، به پیکربندی نحوه اجرای R8 مراجعه کنید.