تأخیر راه اندازی یک معیار مهم برای حفظ کاربران فعال روزانه و اطمینان از تجربه کاربری یکپارچه از اولین تعامل است. این امر به ویژه در محیطهای با RAM پایین که ممکن است در آن معاوضههای عملکردی در نظر گرفته شود، صادق است. با این حال، قبل از شروع بهبود راهاندازی اپلیکیشن، مهم است که جنبههای اساسی را که به خود راهاندازی کمک میکنند، درک کنید.
بهترین شیوه ها
ارسال با نمایه پایه
نمایههای خط پایه سرعت اجرای کد را حدود 30 درصد از اولین راهاندازی با اجتناب از مراحل تفسیر و جمعآوری بهموقع (JIT) برای مسیرهای کد گنجانده شده بهبود میبخشند. با ارسال نمایه خط پایه در یک برنامه، Android Runtime (ART) میتواند مسیرهای کد گنجانده شده را از طریق تلفیقی پیش از زمان (AOT) بهینه کند، و بهبود عملکرد را برای هر کاربر جدید و هر بهروزرسانی برنامه ارائه کند.
از مقداردهی اولیه مشتاقانه خودداری کنید
از انجام کارهای مشتاقانه ای که ممکن است در دنباله راه اندازی برنامه شما ضروری نباشد، خودداری کنید. محتمل ترین سناریو برای شروع فرآیند برنامه شما از طریق راه اندازی برنامه است. با این حال، WorkManager ، JobScheduler ، BroadcastReceiver ، سرویسهای محدود، و کتابخانه راهاندازی AndroidX نیز میتوانند فرآیندهای برنامه را در پسزمینه شروع کنند. در صورت امکان، از شروع بی مورد هر چیزی مشتاقانه در کلاس Application
خودداری کنید. بسیاری از کتابخانه ها مقدار دهی اولیه بر اساس درخواست را ارائه می دهند که به شما امکان می دهد فقط در صورت لزوم آنها را فراخوانی کنید.
کارها را از رشته UI به رشته پس زمینه منتقل کنید
اگر کارهایی هستند که طولانیتر میشوند و رشته اصلی را مسدود میکنند، آنها را به یک رشته پسزمینه منتقل کنید یا از WorkManager برای اطمینان از کارایی استفاده کنید. عملیاتی را شناسایی کنید که فریم های زمانی زیادی را اشغال می کنند یا زمان بیشتری از حد انتظار مصرف می کنند. بهینه سازی این وظایف می تواند به بهبود چشمگیر تاخیر راه اندازی کمک کند.
جدال شدید خواندن دیسک را تجزیه و تحلیل و رفع کنید
StrictMode یک ابزار توسعهدهنده است که میتواند به شناسایی استفاده تصادفی دیسک یا دسترسی شبکه در رشته اصلی برنامه، جایی که عملیات UI دریافت میشود و انیمیشنها انجام میشود، کمک کند. هنگامی که ابزار یک منطقه احتمالی بهبود را تشخیص داد، می توانید به طور خودکار برنامه را خاتمه دهید یا تخلف را برای بازرسی بیشتر در زمان بعدی ثبت کنید.
از IPCهای همزمان خودداری کنید
اغلب مکث های طولانی در اجرای برنامه شما به دلیل تماس های بایندر، مکانیسم ارتباط بین فرآیندی (IPC) در اندروید است. در نسخههای اخیر اندروید، یکی از رایجترین دلایل توقف اجرای UI Thread است. به طور کلی، راه حل این است که از فراخوانی توابعی که باعث فراخوانی بایندر می شوند، اجتناب شود. اگر اجتناب ناپذیر است، باید مقدار را در حافظه پنهان ذخیره کنید یا کار را به رشته های پس زمینه منتقل کنید. برای اطلاعات بیشتر، تأخیرهای زمانبندی موضوع را ببینید.