عملکرد در Wear OS یک برنامه ضروری است، زیرا بسیاری از دستگاههای Wear OS منابع CPU و GPU محدودی در مقایسه با دستگاههای تلفن همراه بزرگتر دارند. با معرفی انیمیشنهای غنیتر و جلوههای پویا در Material 3 Expressive، باید عملکرد گردشهای کاری کلیدی برنامه خود را اعتبارسنجی و بهبود بخشید.
از راهنمای Jetpack Compose Performance برای پیکربندی و توسعه برنامه خود برای عملکرد مطلوب با استفاده از Jetpack Compose استفاده کنید. این سند برخی از تکنیک های شرح داده شده در آنجا را برجسته می کند.
همچنین، استراتژیهای اندازهگیری عملکرد را ایجاد کرده و دنبال کنید تا تأیید کنید که تکنیکهای موجود در این سند مطابق انتظار برای برنامه شما کار میکنند.
تکنیک های ضروری بهبود عملکرد
با تاثیرگذارترین انواع ابزار عملکرد شروع کنید: پروفایل های پایه (از جمله پروفایل های راه اندازی) و بهینه ساز کد R8.
قبل از شروع، توصیه میکنیم وابستگی Compose خود را حداقل به نسخه 1.8 بهروزرسانی کنید، که چندین ویژگی جدید مهم را معرفی کرد و ثبات کلی کتابخانه را بهبود بخشید. برای یادگیری نحوه بهروزرسانی، دستورالعملهای موجود در «اعلان وابستگیها» را ببینید و برای کسب اطلاعات بیشتر، وبلاگ ما را در مورد نسخه 1.8 و گفتگوی «نوشتن I/O جدید» بررسی کنید.
پروفایل های پایه
از نمایه های پایه برای بهبود عملکرد برنامه خود استفاده کنید . کلاسها و روشهایی را که گردشهای کاری کلیدی برنامه شما را نشان میدهند، گروهبندی کنید، که سیستم میتواند با استفاده از نمایه خط پایه آنها را از قبل کامپایل کند. این میتواند زمان راهاندازی را کاهش دهد، فریمهای janky را کاهش دهد و بهبود عملکرد بیشتری را ارائه دهد.
هر کتابخانه Jetpack Compose با قوانین نمایه خاص خود ارسال می شود. هنگامی که برنامه شما به یک کتابخانه وابسته است، قوانین نمایه کتابخانه به طور خودکار با APK برنامه شما ادغام شده و برای آماده سازی از قبل توزیع می شود.
پروفایل های پایه خود را با استفاده از تکنیک های زیر تأیید کنید:
- از تست های ماکرو بنچمارک استفاده کنید.
- از دستورات خاص ADB برای تأیید وضعیت پیکربندی نمایه برنامه خود استفاده کنید.
مراحل هر دوی این تکنیک ها در راهنمای سنجش عملکرد و اعتبار سنجی توضیح داده شده است.
نمایه های راه اندازی
بهعنوان زیرمجموعهای از پروفایلهای پایه، Startup Profiles کلاسها و روشهای موجود را برای کاهش تأخیر راهاندازی برنامه بهینهسازی میکند.
افزودن نمایه راهاندازی، اندازه APK برنامه شما را افزایش میدهد، بنابراین قبل از افزودن یک نمایه به نسخه تولیدی خود، مطمئن شوید که تعادل بین اندازه APK و تأخیر راهاندازی را ارزیابی کنید.
هنگامی که به طور کلی با تنظیم نمایه های پایه خود راحت هستید، برای شروع کار ایجاد یک نمایه راه اندازی را بخوانید.
R8
از کامپایلر R8 برای کوچک کردن و بهینه سازی برنامه ها استفاده کنید. R8 کدها و منابع استفاده نشده را حذف می کند، کد را برای بهینه سازی عملکرد زمان اجرا بازنویسی می کند و موارد دیگر.
در راهنمای نحوه بهبود عملکرد بررسی اجمالی ، ملاحظات R8، از جمله مراحل کلیدی برای حذف منابع بلااستفاده را مرور کنید.
اندازه گیری و اعتبارسنجی عملکرد
برای آشنایی با استراتژیهای اندازهگیری عملکرد کلی در Android، به نمای کلی اندازهگیری عملکرد برنامه مراجعه کنید. این بخش شامل تعدادی از تکنیک های مورد بحث در آن مستندات است.
یک نوع ساخت را برای اندازه گیری انتخاب کنید
در حالی که حالت اشکال زدایی برای شناسایی بسیاری از مشکلات مفید است، هزینه عملکرد قابل توجهی را تحمیل می کند، از پروفایل های پایه استفاده نمی کند و می تواند تشخیص مسائل کد را که ممکن است به عملکرد آسیب می زند دشوار کند.
برای درک دقیق عملکرد برنامه خود، برنامه خود را در حالت انتشار اجرا کنید.
شما فقط باید با استفاده از آزمایشهایی که با برنامههای در حال اجرا با گزینههای ساخت انتشار و در دستگاههای واقعی انجام میشوند، در مورد عملکرد نتیجهگیری نهایی کنید.
با این حال، هنگام تست بنچمارک، از نوع ساخت بنچمارک استفاده کنید که تفاوت های کلیدی با اشکال زدایی انتشار دارد. برای جزئیات به راهنمای تنظیم Macrobenchmark مراجعه کنید.
نمایه های پایه برنامه خود را اعتبارسنجی کنید
با بررسی وضعیت نمایه خود شروع کنید:
adb shell dumpsys package dexopt | grep -A 1 $PACKAGE_NAME
اگر وضعیت status=speed-profile
نباشد، قوانین نمایه هنوز برای بهینه سازی برنامه اعمال نشده است.
قوانین با استفاده از یک کار پسزمینه اعمال میشوند که وقتی دستگاه شارژ و بیحرکت است اجرا میشود. میتوانید پس از راهاندازی برنامه و سپری شدن زمان کافی برای راهاندازی نمایه در پسزمینه به نصبکننده نمایه، به صورت دستی این کار را با اجرای دستور زیر فعال کنید. این معمولاً حدود 40 ثانیه طول می کشد.
adb shell cmd package bg-dexopt-job
سپس می توانید دستور قبلی را مجدداً اجرا کنید تا بررسی کنید که وضعیت اکنون speed-profile
است.
برای موقعیتهایی که بهینهسازی در هنگام نصب انجام میشود، به نمایه خط پایه Sideload مراجعه کنید.
UI Automator API
از UI Automator API استفاده کنید تا هنگام بررسی سفرهای کاربر برای بهینهسازیهای بالقوه، بخشهای مجزای UI را محک بزنید.
با خودکار کردن تعاملات UI به صورت برنامهای کار میکند.
تست های ماکرو بنچمارک
ماکرو بنچمارک ها موارد استفاده بزرگتر از برنامه شما را آزمایش می کنند، به ویژه راه اندازی برنامه و دستکاری های پیچیده رابط کاربری. برای شروع به راهنمای پیاده سازی مراجعه کنید.
برای مثالی از استفاده از معیارهای کلان برای اعتبارسنجی عملکرد پروفایل های پایه، به نمونه های عملکرد در GitHub مراجعه کنید.
کتابخانه JankStats
از کتابخانه JankStats برای ردیابی و تجزیه و تحلیل مشکلات عملکرد در برنامه ها استفاده کنید.
برای مثال، نمونه JankStats را در GitHub ببینید.
ردیابی سیستم
با انواع انیمیشن های جدید معرفی شده توسط Material 3 Expressive، می توانید از ویژگی System Trace در Android Studio برای بررسی و تشخیص تاخیر در سفرهای بالقوه مشکل ساز استفاده کنید. با توجه به این اطلاعات، میتوانید محتوای نمایههای پایه خود را تأیید کنید و منطق کد خود را برای جستجوی مکانهایی با ناکارآمدی احتمالی بررسی کنید.
ابزارهای اضافی
علاوه بر ابزارهای بهبود عملکرد، ابزارهای دیگری نیز وجود دارد که توسعه دهندگان می توانند برای بهبود بهره وری و گردش کار خود از آنها استفاده کنند.
ابزارهای بهره وری اندروید استودیو
Android Studio ابزارهای متعددی را ارائه می دهد که می تواند مدت زمانی را که صرف جستجوی راه هایی برای بهبود عملکرد می کنید کاهش دهد.
برای مثال، با استفاده از ابزارهایی مانند ویرایش زنده و پیشنمایشهای کامپوزیشن ، میتوانید برای بهبود عملکرد، رابط کاربری نامناسب را به همراه قسمتهای مرتبط در کد برنامهتان شناسایی کنید.
تمام تستهای عملکرد نهایی را روی مجموعهای از دستگاههای Wear OS فیزیکی که به طور دقیق پایگاه کاربر هدف شما را نشان میدهند، اجرا کنید.
این امر به ویژه هنگام مهاجرت به Material 3 Expressive که ویژگیهایی مانند فونتهای انعطافپذیر و شکلبندی شکل را به برنامه شما معرفی میکند، مهم است.
اگر از نماها مهاجرت میکنید، راهنمای مهاجرت و بهترین روشهای ما را برای عملکرد Jetpack Compose بررسی کنید تا تأیید کنید که رابطهای کاربری برنامه شما هنگام استفاده از Jetpack Compose کارآمد هستند.
منابع دیگر
برای به روز ماندن از آخرین عملکرد اندروید، آخرین اخبار و ویدیوها را در راهنمای عملکرد برنامه بررسی کنید.