بهترین روشهای زیر به بهینهسازی اپلیکیشن شما بدون کاهش کیفیت کمک میکنند.
از پروفایل های پایه استفاده کنید
نمایههای پایه میتوانند سرعت اجرای کد را از اولین راهاندازی تا 30 درصد بهبود بخشند و میتوانند تمامی تعاملات کاربر (مانند راهاندازی برنامه، پیمایش بین صفحهها یا پیمایش در محتوا) را از اولین باری که اجرا میکنند، راحتتر کنند. افزایش سرعت و پاسخگویی یک برنامه منجر به افزایش تعداد کاربران فعال روزانه و میانگین نرخ بازدید برگشت بالاتر می شود.
از نمایه راه اندازی استفاده کنید
نمایه راهاندازی شبیه به نمایه خط پایه است، اما در زمان کامپایل اجرا میشود تا طرحبندی DEX را برای راهاندازی سریعتر برنامه بهینهسازی کند.
از کتابخانه App Startup استفاده کنید
کتابخانه App Startup به شما امکان می دهد به جای تعریف ارائه دهندگان محتوای جداگانه برای هر مؤلفه ای که باید مقداردهی اولیه کنید، مولفه های اولیه را تعریف کنید که یک ارائه دهنده محتوای واحد را به اشتراک بگذارند. این می تواند زمان راه اندازی اپلیکیشن را به میزان قابل توجهی بهبود بخشد.
کتابخانه ها را با تنبلی بارگیری کنید یا راه اندازی خودکار را غیرفعال کنید
برنامهها کتابخانههای زیادی را مصرف میکنند که برخی از آنها ممکن است برای راهاندازی اجباری باشند. با این حال، ممکن است کتابخانههای زیادی وجود داشته باشد که در آنها مقداردهی اولیه تا پس از ترسیم اولین فریم به تعویق بیفتد. برخی از کتابخانهها گزینهای برای غیرفعال کردن راهاندازی خودکار هنگام راهاندازی یا داشتن مقداردهی اولیه بر اساس درخواست دارند. از این گزینه برای به تعویق انداختن مقداردهی اولیه تا زمانی که برای کمک به افزایش عملکرد ضروری است استفاده کنید. برای مثال، میتوانید از مقداردهی اولیه برحسب تقاضا استفاده کنید تا فقط زمانی که مؤلفه مورد نیاز است، WorkManager را فراخوانی کنید.
از ViewStubs استفاده کنید
ViewStub
یک View
نامرئی و با اندازه صفر است که می توانید از آن برای افزایش تنبلی منابع طرح بندی در زمان اجرا استفاده کنید. این به شما امکان میدهد افزایش نماهایی را که هنگام راهاندازی ضروری نیستند، تا زمان دیگری به تأخیر بیندازید.
اگر از Jetpack Compose استفاده میکنید، میتوانید رفتاری مشابه ViewStub
با استفاده از حالت برای به تعویق انداختن بارگذاری برخی از مؤلفهها داشته باشید:
var shouldLoad by remember {mutableStateOf(false)}
if (shouldLoad) {
MyComposable()
}
با تغییر shouldLoad
، composeable ها را در داخل بلوک شرطی بارگذاری کنید:
LaunchedEffect(Unit) {
shouldLoad = true
}
این یک ترکیب مجدد را آغاز می کند که شامل کد داخل بلوک شرطی در قطعه اول است.
صفحه نمایش اسپلش خود را بهینه کنید
Splash Screen بخش اصلی راه اندازی اپلیکیشن است و استفاده از یک صفحه نمایش خوب طراحی شده می تواند به بهبود تجربه کلی راه اندازی اپلیکیشن کمک کند. اندروید 12 (سطح API 31) و نسخه های جدیدتر شامل یک صفحه نمایش اسپلش است که برای بهبود عملکرد طراحی شده است. برای اطلاعات بیشتر، Splash Screen را ببینید.
از انواع تصاویر مقیاس پذیر استفاده کنید
توصیه میکنیم از ترسیمهای برداری برای تصاویر استفاده کنید. در مواردی که امکان پذیر نیست، از تصاویر WebP استفاده کنید. WebP یک فرمت تصویری است که فشردهسازی بدون تلفات و فشردهسازی عالی را برای تصاویر در وب فراهم میکند. با استفاده از Android Studio می توانید تصاویر BMP، JPG، PNG یا استاتیک GIF را به فرمت WebP تبدیل کنید. برای اطلاعات بیشتر، به ایجاد تصاویر WebP مراجعه کنید.
علاوه بر این، تعداد و اندازه تصاویر بارگذاری شده در هنگام راه اندازی را به حداقل برسانید.
از API های عملکرد استفاده کنید
API عملکرد برای پخش رسانه در Android 12 (سطح API 31) و نسخه های جدیدتر موجود است. شما می توانید از این API برای درک قابلیت های دستگاه و انجام عملیات بر اساس آن استفاده کنید.
ردپای راه اندازی سرد را در اولویت قرار دهید
شروع سرد به برنامه ای اشاره دارد که از ابتدا شروع می شود. به این معنی که فرآیند سیستم هنوز فرآیند برنامه را ایجاد نمی کند. اگر برای اولین بار از زمان بوت شدن دستگاه یا از زمانی که سیستم برنامه را به اجبار متوقف کرده است، برنامه شما معمولاً سرد شروع می شود. شروع سرد بسیار کندتر است، زیرا برنامه و سیستم باید کارهای بیشتری را انجام دهند که در سایر انواع راه اندازی مورد نیاز نیست - مانند شروع گرم و گرم. سیستم ردیابی راه اندازی سرد به شما نظارت بهتری بر عملکرد برنامه می دهد.
{% کلمه به کلمه %}برای شما توصیه می شود
- توجه: وقتی جاوا اسکریپت خاموش است، متن پیوند نمایش داده می شود
- تحلیل و بهینه سازی راه اندازی اپلیکیشن {:#app-startup-analysis-optimization}
- زمان راه اندازی اپلیکیشن
- قاب های یخ زده