ما هفته گذشته را صرف به اشتراک گذاشتن بهترین شیوهها و راهنماییهایی کردیم که به سریعتر، کوچکتر و پایدارتر شدن برنامههای اندروید کمک میکند. از قدرتهای بنیادی بهینهساز R8 و بهینهسازیهای هدایتشده توسط پروفایل گرفته تا بهبود عملکرد با Jetpack Compose و یک راهنمای جدید در مورد افزایش عملکرد برنامه شما، ابزارهای کمزحمت و پراثری را که برای ساخت یک برنامه کارآمد نیاز دارید، پوشش دادهایم.
این پست به عنوان فهرست و نقشه راه شما عمل میکند تا هر زمان که نیاز به بهینهسازی داشتید، دوباره به این منابع مراجعه کنید. در اینجا پنج نکته کلیدی از سفر ما با هم آورده شده است.
از بهینهساز R8 برای افزایش سرعت برنامه خود استفاده کنید
تأثیرگذارترین و کمزحمتترین تغییری که میتوانید ایجاد کنید، فعالسازی کامل بهینهساز R8 است. این بهینهساز نه تنها اندازه برنامه را کاهش میدهد، بلکه بهینهسازیهای عمیق و کاملی را در کل برنامه انجام میدهد تا کد شما را برای افزایش کارایی، اساساً بازنویسی کند. قوانین Keep خود را مجدداً بررسی کنید و R8 را به وظایف مهندسی خود بازگردانید.
مستندات بهروز شده و گسترشیافتهی ما در مورد بهینهساز R8 اینجاست تا به شما کمک کند.
ردیت مشاهده کرد که پس از فعال کردن حالت کامل R8، سرعت راهاندازی سرد سیستم ۴۰٪ و خطاهای ANR 30٪ کاهش یافته است .
شما میتوانید مطالعه موردی کامل را در وبلاگ ما بخوانید.

مهندسان دیزنیپلاس روی عملکرد برنامه سرمایهگذاری میکنند و در حال بهینهسازی تجربه کاربری برنامه هستند. گاهی اوقات حتی تغییرات به ظاهر کوچک میتوانند تأثیر بزرگی داشته باشند. این تیم هنگام بررسی پیکربندی R8 خود، متوجه شد که از پرچم -dontoptimize استفاده میشود. پس از فعال کردن بهینهسازیها با حذف این پرچم، تیم دیزنیپلاس شاهد بهبودهای قابل توجهی در عملکرد برنامه خود بود.

بنابراین دفعه بعد که کسی از شما پرسید برای بهبود عملکرد برنامه چه کاری میتوانید انجام دهید، فقط کافیست او را به این پست لینک دهید.
برای اطلاعات بیشتر به وبلاگ روز اول ما مراجعه کنید: از R8 برای کوچک کردن، بهینهسازی و تسریع روند توسعه اپلیکیشن خود استفاده کنید
هدایت شما به سوی عملکرد بهتر
پروفایلهای پایه (Baseline Profiles) به طور موثری نیاز به کامپایل درجا (Just in Time Compilation) را از بین میبرند و سرعت راهاندازی، پیمایش، انیمیشن و عملکرد کلی رندر را بهبود میبخشند. پروفایلهای راهاندازی (Startup Profiles) با ایجاد یک ترتیب هوشمند در فایلهای classes.dex برنامه شما، راهاندازی برنامه را حتی سبکتر میکنند.
و برای کسب اطلاعات بیشتر در مورد اهمیت پروفایلهای پایه برای عملکرد برنامه، وبلاگ مهندسی متا را مطالعه کنید که در آن به اشتراک گذاشتهاند که چگونه پروفایلهای پایه معیارهای مختلف عملکرد حیاتی را تا 40٪ در برنامههایشان بهبود بخشیدهاند.
ما همچنان در Jetpack Compose 1.10 به افزایش کارایی Jetpack Compose برای شما ادامه میدهیم. ویژگیهایی مانند ترکیب قابل مکث و پنجره کش قابل تنظیم برای جلوگیری از اسکرول کردن بیش از حد هنگام کار با آیتمهای لیست پیچیده بسیار مهم هستند. نگاهی به آخرین قسمت #TheAndroidShow بیندازید که در آن این موضوع را با جزئیات بیشتری توضیح میدهیم.
در وبلاگ چهارشنبه ما بیشتر بخوانید: ملاحظات عمیقتر در مورد عملکرد
اندازهگیری عملکرد میتواند به راحتی ۱، ۲، ۳ باشد
شما نمیتوانید چیزی را که اندازهگیری نمیکنید، مدیریت کنید. راهنمای ترازبندی عملکرد ما، مسیر اندازهگیری شما را به پنج مرحله تقسیم میکند، که با دادههای در دسترس شروع میشود و به ابزارهای پیشرفته محلی میرسد.
با شروع از سطح ۱ ، به شما آموزش میدهیم که چگونه از دادههای موجود در Android Vitals استفاده کنید، که دادههای میدانی در مورد ANRها، خرابیها و استفاده بیش از حد باتری را در اختیار شما قرار میدهد.
ما همچنین به شما آموزش خواهیم داد که چگونه سطح خود را ارتقا دهید. برای مثال، نحوه رسیدن به سطح ۳ را با تست عملکرد محلی نشان خواهیم داد. با استفاده از Jetpack Macrobenchmark و رابط برنامهنویسی کاربردی جدید UiAutomator 2.4، میتوانید هرگونه تغییر در عملکرد برنامه خود را به طور دقیق اندازهگیری و تأیید کنید.
برای اطلاعات بیشتر به وبلاگ پنجشنبه ما مراجعه کنید: [لینک وبلاگ پنجشنبه: راهنمای سطحبندی برای سفر عملکرد شما]
عملکرد اشکالزدایی بهتازگی ارتقا یافته است
بهینهسازی پیشرفته نباید به معنای گزارشهای خرابی غیرقابل خواندن باشد. ویژگیهای جدید به گونهای طراحی شدهاند که به شما کمک کنند با اطمینان R8 و کارهای پسزمینه را اشکالزدایی کنید:
ردیابی خودکار Logcat
با شروع در اندروید استودیو Narwhal، ردیابیهای پشته میتوانند به طور خودکار در پنجره Logcat از حالت مبهم خارج شوند. به این ترتیب میتوانید بلافاصله هرگونه خرابی را در یک نسخه آماده تولید مشاهده و اشکالزدایی کنید.
قوانین محدودکننده
روز سهشنبه، ما قوانین Keep مورد نیاز برای رفع خرابیهای زمان اجرا را رفع ابهام کردیم و بر نوشتن قوانین خاص و در سطح اعضا به جای استفاده از wildcardهای بیش از حد کلی تأکید کردیم. و از آنجایی که این موضوع مهمی است، یک ویدیو نیز برای شما تهیه کردیم.
و با بررسی جدید پرز برای قوانین Keep گسترده، افزونهی Android Studio Otter 3 Feature Drop این مورد را نیز پوشش میدهد.

ما همچنین راهنماییهای جدیدی در مورد آزمایش و عیبیابی پیکربندی R8 شما منتشر کردهایم تا به شما کمک کنیم پیکربندی را با اطمینان انجام دهید.
در وبلاگ سهشنبه ما بیشتر بخوانید: پیکربندی و عیبیابی R8 Keep Rules
پیشینه کار
ما راهنماییهایی در مورد اشکالزدایی سناریوهای رایجی که ممکن است هنگام زمانبندی وظایف با WorkManager با آنها مواجه شوید، به اشتراک گذاشتیم.
Background Task Inspector به شما یک نمایش بصری و نمودار از وظایف WorkManager ارائه میدهد و به اشکالزدایی دلیل تأخیر یا شکست کار برنامهریزیشده کمک میکند. و صفحه فرود مستندات Background Work که بهروزرسانی شده است، APIهای مختص وظیفه را که برای موارد استفاده خاص بهینه شدهاند، برجسته میکند و به شما در دستیابی به اجرای قابل اعتمادتر کمک میکند.
در وبلاگ چهارشنبه ما بیشتر بخوانید: ملاحظات عملکرد کاری زمینهای
بهینهسازی عملکرد یک سفر مداوم است
اگر این هفته با موفقیت چالش ما برای فعال کردن حالت کامل R8 را پشت سر گذاشتید، قدم بعدی شما ادغام عملکرد در نقشه راه محصول خود با استفاده از امتیاز عملکرد برنامه است. این چارچوب استاندارد به شما کمک میکند تا بالاترین موارد اقدام را برای بهبود مستمر پیدا کنید.
ما این هفته را با جلسه پرسش و پاسخ زنده #AskAndroid به پایان رساندیم، جایی که مهندسان به سختترین سوالات شما در مورد R8، بهینهسازیهای هدایتشده توسط پروفایل و موارد دیگر پاسخ دادند. اگر آن را از دست دادید، منتظر پخش مجدد آن باشید!
از اینکه به ما پیوستید متشکریم! حالا، شروع به ساختن کنید و این حرکت رو به جلو رو ادامه بدید.
ادامه مطلب

رویدادها و برنامهها
ما کار را با تأثیرگذارترین و کمزحمتترین تغییری که میتوانید برای بهبود عملکرد برنامه خود ایجاد کنید، آغاز میکنیم: فعال کردن بهینهساز R8 در حالت کامل.
Ben Weiss • ۵ دقیقه مطالعه

رویدادها و برنامهها
سپتامبر گذشته، ما چشمانداز خود را برای آینده بازیهای گوگل پلی که مبتنی بر یک باور اصلی بود، به اشتراک گذاشتیم: بهترین راه برای موفقیت بازی شما، ارائه یک تجربه بازیکن در سطح جهانی است.
Maru Ahues Bouza • 3 دقیقه مطالعه

رویدادها و برنامهها
کنفرانس گوگل آی/او (Google I/O) دوباره از راه رسید! به صورت آنلاین به ما بپیوندید تا جدیدترین پیشرفتها و بهروزرسانیهای هوش مصنوعی در محصولات مختلف این شرکت، از جمینی (Gemini) گرفته تا اندروید، کروم، فضای ابری و موارد دیگر را به اشتراک بگذاریم.
۱ دقیقه مطالعه
در جریان باشید
جدیدترین بینشهای توسعه اندروید را به صورت هفتگی در صندوق ورودی خود دریافت کنید.



