Wake lock جزئی مکانیزمی در PowerManager
API است که به توسعه دهندگان این امکان را می دهد که CPU را پس از خاموش شدن نمایشگر دستگاه (چه به دلیل وقفه زمانی سیستم یا فشار دادن دکمه پاور توسط کاربر) روشن نگه دارند. برنامه شما با فراخوانی acquire()
با پرچم PARTIAL_WAKE_LOCK
، یا با استفاده از سایر APIهایی که wake lock را دریافت میکنند، یک wake lock جزئی دریافت میکند. استفاده بیش از حد از وایک لاک جزئی باعث تخلیه باتری دستگاه می شود زیرا از ورود دستگاه به حالت های کم مصرف جلوگیری می کند. وایک لاک های جزئی باید فقط در صورت لزوم استفاده شوند و به محض اینکه دیگر مورد نیاز نباشند آزاد شوند.
اگر برنامه شما بیش از حد از wake lock های جزئی استفاده می کند، می توانید از راهنمایی در این صفحه برای تشخیص و رفع مشکل استفاده کنید.
بازخورد شما بخش مهمی در بهبود اسناد ما است. لطفا نظرات خود را از طریق لینک زیر برای ما ارسال کنید:
مشکل را تشخیص دهید
Android vitals می تواند به شما کمک کند متوجه شوید که چه زمانی برنامه شما از wake lock های جزئی بیش از حد استفاده می کند.
حیاتی اندروید
Android vitals می تواند با هشدار دادن به شما از طریق کنسول Play در زمانی که برنامه شما از wake lock جزئی بیش از حد استفاده می کند، به بهبود عملکرد برنامه شما کمک کند.
Android vitals استفاده از wake lock جزئی را زمانی که همه wake lockهای جزئی ، با هم جمع شده، برای 2 ساعت یا بیشتر در یک دوره 24 ساعته اجرا می کنند، بیش از حد گزارش می کند. Android vitals تنها در صورتی مدت زمان wake lock را ردیابی میکند که وقتی برنامه در پسزمینه است یا در حال اجرای یک سرویس پیشزمینه است، wake lock نگه داشته شود. در حال حاضر، Android vitals wake lockهای ایجاد شده توسط صدا ، مکان ، و APIهای ایجاد شده توسط کاربر JobScheduler را از محاسبه wake lock مستثنی میکند.
داشبورد wake lock جزئی بیش از حد حیاتی Android، تفکیک نامهای wake lock غیرمعمول مرتبط با برنامه شما را ارائه میکند و جلسات و مدتزمانهای تحت تأثیر را نشان میدهد.
اگر در بیش از 5 درصد از جلسات برنامه در همه دستگاهها در یک دوره 28 روزه، قفلهای جزئی بیش از حد بیدار شوند، پس از اینکه سنجه از نسخه بتا خارج شد، میتواند روی نمایان شدن برنامه شما در Play تأثیر بگذارد.
هنگامی که متوجه شدید که برنامه شما دارای قفل های جزئی بیش از حد است، گام بعدی شما رفع مشکل است.
مشکل را برطرف کنید
از آنجایی که wake lock می تواند باتری دستگاه را تخلیه کند، اگر جایگزینی وجود دارد، نباید از wake lock استفاده کنید. اسناد Choose API مناسب برای بیدار نگه داشتن دستگاه می تواند به شما کمک کند بهترین راه حل را برای برنامه خود پیدا کنید.
اگر نیاز به استفاده از wake lock دارید، بهترین روشهای wake lock را دنبال کنید تا مطمئن شوید که wake lock شما به کارایی دستگاه آسیب نمیزند. به ویژه، مطمئن شوید که هر دستگاهی که به دست می آورید آزاد شده است و قفل را در اسرع وقت آزاد کنید.
برنامه شما همچنین ممکن است از wake lock استفاده کند، حتی اگر به طور صریح wake lock را دریافت نکنید. اگر wake lockهایی را میبینید که به برنامه نسبت داده میشوند که آنها را نمیشناسید، شناسایی wake lockهای ایجاد شده توسط APIهای دیگر میتواند به شما در شناسایی APIهایی که ممکن است آنها را ایجاد کرده باشند کمک کند.
پس از رفع مشکل در کد، می توانید با استفاده از ابزارهای اشکال زدایی wake lock محلی، رفع اشکال خود را تأیید کنید.
همچنین ببینید
- ویک لاک های جزئی گیر کرده است
- API مناسب را برای بیدار نگه داشتن دستگاه انتخاب کنید
- مستندات Wake lock
برای شما توصیه می شود
- توجه: وقتی جاوا اسکریپت خاموش است، متن پیوند نمایش داده می شود
- قاب های یخ زده
- معیارها را در Continuous Integration اجرا کنید
- ایجاد و اندازه گیری پروفایل های پایه بدون Macrobenchmark