قفلهای بیداری جزئی مکانیزمی در رابط برنامهنویسی کاربردی PowerManager هستند که به توسعهدهندگان اجازه میدهند پس از خاموش شدن صفحه نمایش دستگاه (چه به دلیل تایماوت سیستم یا فشار دادن دکمه پاور توسط کاربر)، پردازنده را در حال کار نگه دارند. برنامه شما با فراخوانی acquire() به همراه پرچم PARTIAL_WAKE_LOCK یا با استفاده از سایر APIهایی که قفلهای بیداری را به دست میآورند ، قفل بیداری جزئی را به دست میآورد. استفاده بیش از حد از قفلهای بیداری جزئی، باتری دستگاه را تخلیه میکند زیرا از ورود دستگاه به حالتهای کممصرفتر جلوگیری میکند. قفلهای بیداری جزئی باید فقط در صورت لزوم استفاده شوند و به محض اینکه دیگر نیازی به آنها نباشد، آزاد شوند.
اگر برنامه شما بیش از حد از قفلهای بیداری جزئی استفاده میکند، میتوانید از راهنماییهای این صفحه برای تشخیص و رفع مشکل استفاده کنید.
مشکل را تشخیص دهید
موارد حیاتی اندروید میتوانند به شما کمک کنند تا بفهمید چه زمانی استفاده برنامه شما از قفلهای بیداری جزئی بیش از حد است.
نکات مهم اندروید
موارد حیاتی اندروید میتوانند با هشدار دادن از طریق کنسول Play در صورت استفاده بیش از حد برنامه شما از قفلهای بیداری جزئی، به بهبود عملکرد برنامه شما کمک کنند.
Android Vitals زمانی استفاده از قفل بیداری جزئی را بیش از حد گزارش میدهد که همه قفلهای بیداری جزئی ، روی هم رفته، به مدت ۲ ساعت یا بیشتر در یک دوره ۲۴ ساعته اجرا شوند. Android Vitals مدت زمان قفل بیداری را تنها در صورتی ردیابی میکند که قفل بیداری زمانی که برنامه در پسزمینه است یا یک سرویس پیشزمینه را اجرا میکند، نگه داشته شود. در حال حاضر، Android Vitals قفلهای بیداری ایجاد شده توسط رابطهای برنامهنویسی کاربردی (API) صوتی ، مکانی و JobScheduler که توسط کاربر ایجاد شدهاند را از محاسبه قفل بیداری معاف میکند.
داشبورد قفل بیداری جزئی بیش از حد Android Vitals، جزئیات نامهای قفل بیداری غیرمعاف مرتبط با برنامه شما را ارائه میدهد و جلسات و مدت زمانهای تحت تأثیر را نشان میدهد.
اگر قفلهای بیداری جزئی بیش از حد در بیش از ۵٪ از جلسات برنامه در تمام دستگاهها در یک دوره ۲۸ روزه رخ دهد، میتواند پس از خارج شدن معیار از حالت بتا، بر میزان دیده شدن برنامه شما در Play تأثیر بگذارد.
وقتی متوجه شدید که برنامه شما قفلهای بیداری جزئی بیش از حدی دارد، قدم بعدی شما رسیدگی به مشکل است.
مشکل را برطرف کنید
از آنجا که قفلهای بیدارباش میتوانند باتری دستگاه را خالی کنند، در صورت وجود جایگزین، نباید از قفلهای بیدارباش استفاده کنید. مستندات «انتخاب API مناسب برای بیدار نگه داشتن دستگاه» میتواند به شما در یافتن بهترین راهحل برای برنامهتان کمک کند.
اگر نیاز به استفاده از قفل بیدارباش دارید، از بهترین شیوههای قفل بیدارباش پیروی کنید تا مطمئن شوید قفلهای بیدارباش به کارایی دستگاه آسیب نمیرسانند. به طور خاص، مطمئن شوید که هر دستگاهی که تهیه میکنید، آزاد است و قفل را در اسرع وقت آزاد کنید.
ممکن است برنامه شما از قفلهای بیداری استفاده کند، حتی اگر صریحاً قفل بیداری را دریافت نکرده باشید. اگر قفلهای بیداری را مشاهده کردید که به برنامه نسبت داده شدهاند و آنها را نمیشناسید، شناسایی قفلهای بیداری ایجاد شده توسط سایر APIها میتواند به شما در شناسایی APIهایی که ممکن است آنها را ایجاد کرده باشند، کمک کند.
پس از رفع مشکل در کد، میتوانید با استفاده از ابزارهای اشکالزدایی قفل بیداری محلی ، اصلاحات خود را تأیید کنید.
همچنین ببینید
- قفلهای بیداری جزئی گیر کردهاند
- API مناسب را برای بیدار نگه داشتن دستگاه انتخاب کنید
- مستندات قفل بیداری
برای شما توصیه میشود
- توجه: متن لینک زمانی نمایش داده میشود که جاوا اسکریپت غیرفعال باشد.
- قابهای یخزده
- اجرای بنچمارکها در یکپارچهسازی مداوم
- ایجاد و اندازهگیری پروفایلهای پایه بدون Macrobenchmark