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