مطالعات موردی
مونزو با یک بهروزرسانی ساده R8، معیارهای عملکرد را تا 35 درصد افزایش میدهد
مطالعه ۲ دقیقهای

مونزو یک بانک دیجیتال بریتانیایی با ۱۵ میلیون مشتری و در حال رشد است. با گسترش اپلیکیشن، تیم مهندسی زمان راهاندازی اپلیکیشن را به عنوان یک حوزه حیاتی برای بهبود شناسایی کرد، اما نگران بود که این امر نیاز به تغییرات قابل توجهی در کدبیس آنها داشته باشد.
با فعالسازی کامل بهینهسازیهای R8، مونزو به کاهش چشمگیر ۳۵ درصدی در نرخ عدم پاسخگویی برنامه (ANR) خود دست یافت. این تغییر ساده ثابت کرد که بهینهسازیهای تأثیرگذار همیشه به تلاشهای مهندسی پیچیده نیاز ندارند.
با حالت کامل R8، عملکرد گسترده را آزاد کنید
مونزو حالت تمام صفحه R8 را به عنوان یک راه حل آسان و ارزشمند معرفی کرد؛ و این روش جواب داد و عملکرد را در کل بهبود بخشید:
- قابلیت اطمینان استارت در حالت سرد ۳۰٪، در حالت گرم ۲۴٪ و در حالت داغ ۱۴٪ بهبود یافته است.
- سرعت پرتاب: زمان پرتاب P50، 11٪ و زمان پرتاب P90، 12٪ بهبود یافته است.
- کارایی: حجم کلی برنامه ۹٪ کاهش یافت.
- پایداری: کاهش ۳۵ درصدی ANR.


فعال کردن بهینهسازیها با یک تغییر واحد
بسیاری از برنامههای اندروید از یک فایل پیکربندی پیشفرض قدیمی استفاده میکنند که اکثر عملکردهای بهینهساز R8 را غیرفعال میکند. تغییر اصلی که مونزو برای دستیابی به این بهبودهای عملکردی ایجاد کرد، جایگزینی فایل پیشفرض proguard-android.txt با proguard-android-optimize.txt بود. این تغییر، دستورالعمل -dontoptimize را حذف میکند و به R8 اجازه میدهد تا کار خود را به درستی انجام دهد.
buildTypes {
release {
isMinifyEnabled = true
isShrinkResources = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
)
}
}پس از اعمال این تغییر، بهتر است به فایلهای پیکربندی Keep خود نگاهی بیندازید. این فایلها به R8 میگویند که کدام بخشهای کد شما را دستنخورده باقی بگذارد (معمولاً به این دلیل که به صورت پویا یا توسط کتابخانههای خارجی فراخوانی میشوند). مرتب کردن قوانین غیرضروری Keep به این معنی است که R8 میتواند کارهای بیشتری انجام دهد.
بهبود عملکرد اسکرول با پروفایلهای پایه
برای بهبود بیشتر تجربه کاربری، مونزو پروفایلهای پایه (Baseline Profiles) را پیادهسازی کرد که بهطور خاص عملکرد اسکرول و رندرینگ را در فید اصلی خود هدف قرار میداد. این استراتژی تضمین میکرد که رایجترین سفرهای کاربر - باز کردن برنامه و اسکرول کردن فید - بهطور کامل بهینه شده باشند. تأثیر آن بر رندرینگ قابل توجه بود: عملکرد اسکرول P90، 71٪ سریعتر شد و عملکرد اسکرول P95، 87٪ بهبود یافت. اکنون اسکرول کردن برنامه روانتر از قبل است.
مونزو این را در فرآیند انتشار خود قرار داد تا این پیشرفتها را در طول زمان حفظ کند. نویمایر توضیح میدهد: «ما هر روز هفته (قبل از اجرای نسخههای شبانه) تولید پروفایل پایه را آغاز میکنیم و پس از تکمیل، آخرین تغییرات را اعمال میکنیم.»
همگام شدن با توسعه مدرن اندروید
تجربه مونزو نشان میدهد که وقتی با توصیههای ابزارهای ساخت اندروید بهروز باشید، چه چیزهایی ممکن است. در حالی که برنامههای قدیمی اغلب با استفاده پیچیده از بازتابها مشکل دارند، مونزو با مستندسازی صحیح قوانین Keep خود، این گذار را ساده یافت. نویمایر خاطرنشان میکند: «ما همیشه توضیحی اضافه میکنیم که توضیح میدهد چرا قوانین Keep وجود دارند، بنابراین میدانیم چه زمانی حذف قوانین بیخطر است.»
توصیهی نیومایر برای سایر تیمها چیست؟ مرتباً شیوههای خود را با استانداردهای فعلی بررسی کنید: «به آخرین توصیههای گوگل در مورد عملکرد برنامه نگاهی بیندازید و بررسی کنید که آیا از آخرین توصیهها پیروی میکنید یا خیر.»
برای شروع و کسب اطلاعات بیشتر در مورد R8، به https://d.android.com/r8 مراجعه کنید.
ادامه مطلب

مطالعات موردی
تیم مهندسی ردیت در طول همکاری خود با تیم روابط توسعهدهندگان اندروید، از امتیاز عملکرد برنامه برای ارزیابی برنامه خود استفاده کردند.
Ben Weiss • ۴ دقیقه مطالعه

مطالعات موردی
تیک تاک یک پلتفرم جهانی برای ویدیوهای کوتاه است که به خاطر پایگاه کاربری گسترده و ویژگیهای نوآورانهاش شناخته میشود.
Ben Trengrove , Ajesh Pai • ۲ دقیقه مطالعه

مطالعات موردی
در دنیای پویای رسانههای اجتماعی، توجه کاربران به سرعت جلب یا از دست میرود. اپلیکیشنهای متا (فیسبوک و اینستاگرام) از بزرگترین پلتفرمهای اجتماعی جهان هستند و به میلیاردها کاربر در سراسر جهان خدمترسانی میکنند.
Mayuri Khinvasara Khabya • 4 دقیقه خواندن
در جریان باشید
جدیدترین بینشهای توسعه اندروید را به صورت هفتگی در صندوق ورودی خود دریافت کنید.




