بهترین شیوههای زیر به بهینهسازی برنامه شما بدون کاهش کیفیت کمک میکنند.
از پروفایلهای پایه استفاده کنید
پروفایلهای پایه میتوانند سرعت اجرای کد را از اولین اجرا تا 30٪ بهبود بخشند و میتوانند تمام تعاملات کاربر - مانند راهاندازی برنامه، پیمایش بین صفحات یا پیمایش محتوا - را از اولین باری که اجرا میشوند، روانتر کنند. افزایش سرعت و پاسخگویی یک برنامه منجر به افزایش کاربران فعال روزانه و میانگین نرخ بازگشت بازدید بالاتر میشود.
از یک پروفایل استارتاپی استفاده کنید
یک پروفایل راهاندازی مشابه پروفایل پایه است، اما در زمان کامپایل اجرا میشود تا طرحبندی DEX را برای راهاندازی سریعتر برنامه بهینه کند.
از کتابخانهی App Startup استفاده کنید
کتابخانه App Startup به شما امکان میدهد به جای تعریف ارائهدهندگان محتوای جداگانه برای هر مؤلفهای که باید مقداردهی اولیه کنید، مقداردهندههای اولیه مؤلفهای را تعریف کنید که از یک ارائهدهنده محتوای واحد استفاده میکنند. این امر میتواند زمان راهاندازی برنامه را به میزان قابل توجهی بهبود بخشد.
کتابخانهها را به صورت تنبل بارگذاری کنید یا مقداردهی اولیه خودکار را غیرفعال کنید
برنامهها از کتابخانههای زیادی استفاده میکنند که برخی از آنها ممکن است برای شروع اجباری باشند. با این حال، کتابخانههای زیادی وجود دارند که میتوانند مقداردهی اولیه را تا پس از ترسیم اولین فریم به تأخیر بیندازند. برخی از کتابخانهها گزینهای برای غیرفعال کردن مقداردهی اولیه خودکار در هنگام شروع یا مقداردهی اولیه بر اساس تقاضا دارند. از این گزینه برای به تعویق انداختن مقداردهی اولیه تا زمان لزوم استفاده کنید تا به افزایش عملکرد کمک کنید. به عنوان مثال، میتوانید از مقداردهی اولیه بر اساس تقاضا برای فراخوانی WorkManager فقط در مواقعی که کامپوننت مورد نیاز است، استفاده کنید.
استفاده از state در composables
وضعیت (State) هر دادهای است که میتواند در طول زمان تغییر کند و تعیین میکند که رابط کاربری شما چه چیزی را نمایش دهد یا چگونه رفتار کند. از آنجا که Compose اعلانی است، صفحه نمایش به طور خودکار بهروزرسانی نمیشود مگر اینکه رابط کاربری صریحاً تغییرات وضعیت را مشاهده کرده و به آنها پاسخ دهد.
استفاده از ترکیب شرطی را برای به تعویق انداختن بارگذاری بخشهایی از رابط کاربری خود که بلافاصله در هنگام اجرا قابل مشاهده نیستند، مانند صفحات خطا، جزئیات اختیاری یا تبهای ثانویه، در نظر بگیرید. با قرار دادن اجزای سنگین در یک بررسی وضعیت ساده، از اجرای منطق ترکیب آنها در طول پنجره راهاندازی حیاتی جلوگیری میکنید و طرح اولیه خود را سبک نگه میدارید.
var shouldLoad by remember {mutableStateOf(false)}
if (shouldLoad) {
MyComposable()
}
با تغییر shouldLoad کامپوننتها را درون بلوک شرطی بارگذاری کنید:
LaunchedEffect(Unit) {
shouldLoad = true
}
این باعث ایجاد یک ترکیب مجدد میشود که شامل کد داخل بلوک شرطی در قطعه کد اول میشود. برای اطلاعات بیشتر، به بخش State در composables مراجعه کنید.
صفحه شروع خود را بهینه کنید
صفحات شروع (Splash Screens) بخش عمدهای از شروع برنامه هستند و استفاده از یک صفحه شروع خوب طراحی شده میتواند به بهبود تجربه کلی شروع برنامه کمک کند. اندروید ۱۲ (سطح API 31) و بالاتر شامل یک صفحه شروع است که برای بهبود عملکرد طراحی شده است. برای اطلاعات بیشتر، به صفحه شروع (Splash Screen) مراجعه کنید.
از انواع تصویر مقیاسپذیر استفاده کنید
ما استفاده از گرافیک برداری برای تصاویر را توصیه میکنیم. در جایی که این امکان وجود ندارد، از تصاویر WebP استفاده کنید. WebP یک فرمت تصویری است که فشردهسازی بدون اتلاف و با اتلاف عالی را برای تصاویر موجود در وب فراهم میکند. میتوانید تصاویر BMP، JPG، PNG یا تصاویر ثابت GIF موجود را با استفاده از اندروید استودیو به فرمت WebP تبدیل کنید. برای اطلاعات بیشتر، به بخش ایجاد تصاویر WebP مراجعه کنید.
علاوه بر این، تعداد و اندازه تصاویر بارگذاری شده در هنگام راهاندازی را به حداقل برسانید.
استفاده از APIهای عملکرد
API عملکرد برای پخش رسانه در اندروید ۱۲ (سطح API ۳۱) و بالاتر در دسترس است. میتوانید از این API برای درک قابلیتهای دستگاه و انجام عملیات بر اساس آن استفاده کنید.
ردیابیهای راهاندازی سرد را در اولویت قرار دهید
شروع سرد به شروع یک برنامه از ابتدا اشاره دارد، به این معنی که فرآیند سیستم هنوز فرآیند برنامه را ایجاد نکرده است. اگر برنامه شما را برای اولین بار از زمان بوت شدن دستگاه یا از زمانی که سیستم برنامه را به زور متوقف کرده است، اجرا کنید، معمولاً سرد شروع میشود. شروع سرد بسیار کندتر است زیرا برنامه و سیستم باید کارهای بیشتری انجام دهند که در سایر انواع راهاندازی - مانند شروع گرم و داغ - لازم نیست. ردیابی سیستم در شروع سرد، نظارت بهتری بر عملکرد برنامه به شما میدهد.
{% کلمه به کلمه %}برای شما توصیه میشود
- توجه: متن لینک زمانی نمایش داده میشود که جاوا اسکریپت غیرفعال باشد.
- تحلیل و بهینهسازی راهاندازی اپلیکیشن
- زمان شروع برنامه
- قابهای یخزده