عمليات قفل التنشيط الجزئي الزائدة عن الحد (إصدار تجريبي)
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
قفل التنشيط الجزئي هو آلية في واجهة برمجة التطبيقات PowerManager تتيح للمطوّرين إبقاء وحدة المعالجة المركزية (CPU) تعمل بعد إيقاف شاشة الجهاز (سواءً بسبب مهلة النظام أو الضغط على زر التشغيل من قِبل المستخدم). يحصل تطبيقك على
قفل تشغيل جزئي من خلال استدعاء acquire() باستخدام العلامة PARTIAL_WAKE_LOCK
أو باستخدام واجهات برمجة تطبيقات أخرى تحصل على أقفال تشغيل.
يؤدي الاستخدام المفرط لقفل التنشيط الجزئي إلى استنزاف بطارية الجهاز لأنّه
يمنع الجهاز من الدخول إلى حالات استهلاك الطاقة المنخفض. يجب استخدام أقفال التنشيط الجزئية
فقط عند الضرورة وإلغاؤها فورًا بعد انتهاء الحاجة إليها.
إذا كان تطبيقك يستخدم عمليات قفل التنشيط الجزئي بشكل مفرط، يمكنك استخدام الإرشادات الواردة في
هذه الصفحة لتشخيص المشكلة وحلّها.
ملاحظاتك هي جزء مهم من تحسين مستنداتنا. يُرجى إرسال ملاحظاتك باستخدام الرابط التالي:
يمكن أن تساعدك "مؤشرات Android الحيوية" في معرفة ما إذا كان تطبيقك يستخدم عمليات قفل التنشيط الجزئي
بشكل مفرط.
مؤشرات Android الحيوية
يمكن أن تساعدك "مؤشرات Android الحيوية" في تحسين أداء تطبيقك من خلال إرسال تنبيهات إليك عبر
Play Console عندما يكون استخدام تطبيقك للقفل الجزئي للتنشيط
مفرطًا.
تُبلغ "مؤشرات Android الحيوية" عن استخدام قفل تنشيط الجهاز الجزئي على أنّه مفرط عندما تعمل جميع
أقفال تنشيط الجهاز الجزئية معًا لمدة 3 ساعات أو أكثر في
فترة 24 ساعة.
لا تتتبّع "مؤشرات Android الحيوية" الوقت إلا إذا تم الاحتفاظ بقفل التنشيط عندما يكون التطبيق قيد التشغيل في
الخلفية ولا يستخدم خدمة تعمل في المقدّمة.
تمنح ميزات Android الحيوية بعض الاستثناءات لاستخدام قفل التنشيط الجزئي في السيناريوهات التي يستفيد فيها المستخدم بوضوح من قفل التنشيط الجزئي، ولا تتوفّر طريقة أفضل لتحقيق هذه النتيجة بدون قفل التنشيط الجزئي. وفي هذه الحالات، قد لا تحتسب "مؤشرات Android الحيوية"
مدة قفل التنشيط الجزئي ضمن الحدّ الأقصى الذي يبلغ 3
ساعات. على سبيل المثال، إذا كان أحد التطبيقات يشغّل صوتًا للمستخدم، هناك فائدة واضحة
من إبقاء الجهاز في وضع "التشغيل"، ولا توجد طريقة لتشغيل الصوت بدون
إبقاء الجهاز في وضع "التشغيل". في هذه الحالة، لا يتم احتساب مدّة قفل التنشيط الجزئي ضمن مؤشرات Android الحيوية.
إذا حدثت عمليات قفل استيقاظ جزئية مفرطة في أكثر من% 5 من جلسات التطبيق على جميع
الأجهزة خلال فترة 28 يومًا، يمكن أن يؤثر ذلك في ظهور تطبيقك على Play بعد انتهاء مرحلة الإصدار العلني لقياس
الأداء.
بعد معرفة أنّ تطبيقك يستخدم عمليات قفل جزئية مفرطة لتنشيط الشاشة،
تتمثل خطوتك التالية في حلّ المشكلة.
إذا كنت بحاجة إلى استخدام قفل تنشيط، عليك اتّباع أفضل الممارسات المتعلّقة بقفل التنشيط
للتأكّد من أنّ أقفال التنشيط لا تؤثّر سلبًا في كفاءة الجهاز. وعلى وجه الخصوص،
تأكَّد من إزالة قفل كل جهاز تحصل عليه، وإزالة القفل في أسرع وقت ممكن.
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["# Excessive partial wake locks (beta)\n\nPartial wake locks are a mechanism in the [`PowerManager`](/reference/android/os/PowerManager) API that lets\ndevelopers keep the CPU running after a device's display turns off (whether due\nto system timeout or the user pressing the power button). Your app acquires a\npartial wake lock by calling [`acquire()`](/reference/android/os/PowerManager.WakeLock#acquire()) with the [`PARTIAL_WAKE_LOCK`](/reference/android/os/PowerManager#PARTIAL_WAKE_LOCK)\nflag, or by using [other APIs that acquire wake locks](/develop/background-work/background-tasks/awake/wakelock/identify-wls).\nExcessive use of partial wake locks drains the device's battery because it\nprevents the device from entering lower power states. Partial wake locks should\nbe used only when necessary and released as soon as no longer needed.\n\nIf your app uses partial wake locks excessively, you can use the guidance in\nthis page to diagnose and fix the problem.\n\nYour feedback is a crucial part of improving our documentation. Please give us\nyour feedback using the following link:\n\n\n[Give feedback](https://docs.google.com/forms/d/e/1FAIpQLScYkStao0zVsmPay22DGqYEMJSf2Rk3SE3LnPc1lcmLjN1AiQ/viewform?usp=dialog)\n\nDetect the problem\n------------------\n\nAndroid vitals can help you find out when your app's use of partial wake locks\nis excessive.\n\n### Android vitals\n\nAndroid vitals can help improve your app's performance by [alerting you via the\nPlay Console](https://support.google.com/googleplay/android-developer/answer/9844486?) when your app's use of partial wake locks is\nexcessive.\n| **Note:** Tracking of excessive partial wake locks is **currently in beta**. The threshold numbers, relevant app states, and exceptions for behavior that has end-user benefit, are all subject to change. The beta metric does not currently make your app less discoverable on Google Play. Once the metric is out of beta, excessive partial wake lock use may impact app discoverability on Play.\n\nAndroid vitals reports partial wake lock use as **excessive** when **all of the\npartial wake locks**, added together, run for 3 or more hours in 24-hour\nperiod.\n\nAndroid vitals tracks time only if the wake lock is held when the app **is in\nthe background** and **does not have a foreground service**.\n\nAndroid vitals gives some exemptions to partial wake lock usage in scenarios\nwhere there is a clear user benefit of the partial wake lock, and there's no\nbetter way to achieve that result without the partial wake lock. In those cases,\nAndroid vitals might not count the partial wake lock time against the 3-hour\nlimit. For example, if an app is playing audio for the user, there's a clear\nbenefit to keeping the device awake and there's no way to play the audio without\nkeeping the device awake. In that case, the partial wake lock time is not\ncounted against the Android vitals.\n\nIf excessive partial wake locks occur in more than 5% of app sessions across all\ndevices in a 28-day period, it can affect your app's visibility on Play once the\nmetric is out of beta.\n\nOnce you're aware that your app has excessive partial wake locks,\nyour next step is to address the issue.\n\nFix the problem\n---------------\n\nBecause wake locks can drain the device battery, you shouldn't use wake\nlocks if there's an alternative. The\n[Choose the right API to keep the device awake](/develop/background-work/background-tasks/awake)\ndocumentation can help you find the best solution for your app.\n\nIf you do need to use a wake lock, [follow wake lock best practices](/develop/background-work/background-tasks/awake/wakelock/best-practices)\nto make sure your wake locks don't hurt device efficiency. In particular,\nmake sure every device you acquire is released, and release the lock as quickly\nas possible.\n\nAfter fixing the problem in code, you can verify your fixes by using [local\nwake lock debugging tools](/develop/background-work/background-tasks/awake/wakelock/debug-locally).\n\nSee also\n--------\n\n- [Stuck partial wake locks](/topic/performance/vitals/excessive-wakelock)\n- [Wake lock documentation](/develop/background-work/background-tasks/awake/wakelock)\n\nRecommended for you\n-------------------\n\n- Note: link text is displayed when JavaScript is off\n- [Frozen frames](/topic/performance/vitals/render#frozen-frames)\n- [Run benchmarks in Continuous Integration](/topic/performance/benchmarking/benchmarking-in-ci)\n- [Create and measure Baseline Profiles without Macrobenchmark](/topic/performance/baselineprofiles/manually-create-measure)"]]