Trop de wakelocks partiels

Les wakelocks partiels sont un mécanisme de l'API PowerManager qui permet aux développeurs de maintenir le processeur en fonctionnement après l'arrêt de l'écran d'un appareil (en raison d'un dépassement de délai système ou lorsque l'utilisateur appuie sur le bouton Marche/Arrêt). Votre application acquiert un wakelock partiel en appelant acquire() avec l'indicateur PARTIAL_WAKE_LOCK ou en utilisant d'autres API qui acquièrent des wakelocks. L'utilisation excessive de wakelocks partiels décharge la batterie de l'appareil, car cela l'empêche de passer à un état de puissance plus faible. Les wakelocks partiels ne doivent être utilisés que lorsqu'ils sont nécessaires et libérés dès qu'ils ne le sont plus.

Si votre application utilise des wakelocks partiels de manière excessive, vous pouvez suivre les instructions de cette page pour diagnostiquer et résoudre le problème.

Vos commentaires sont essentiels pour améliorer notre documentation. Veuillez nous faire part de vos commentaires en cliquant sur le lien suivant :

Envoyer un commentaire

Détecter le problème

Android Vitals peut vous aider à déterminer quand l'utilisation de wakelocks partiels par votre application est excessive.

Android Vitals

Android Vitals peut vous aider à améliorer les performances de votre application en vous alertant via la Play Console lorsque votre application utilise un nombre excessif de wakelocks partiels.

Android Vitals signale l'utilisation de wakelocks partiels comme excessive lorsque tous les wakelocks partiels, additionnés, durent deux heures ou plus sur une période de 24 heures. Android Vitals ne suit la durée du wakelock que si le wakelock est maintenu lorsque l'application est en arrière-plan ou exécute un service de premier plan. Actuellement, Android Vitals exempte du calcul des wake locks ceux créés par les API audio, location et JobScheduler initiées par l'utilisateur.

Le tableau de bord Android Vitals sur les wakelocks partiels excessifs fournit des informations détaillées sur les noms de wakelocks non exemptés associés à votre application, en indiquant les sessions et les durées concernées.

Si des wakelocks partiels excessifs se produisent dans plus de 5 % des sessions d'application sur tous les appareils au cours d'une période de 28 jours, cela peut affecter la visibilité de votre application sur Play une fois que la métrique sera sortie de la version bêta.

Une fois que vous savez que votre application présente un nombre excessif de wakelocks partiels, vous devez résoudre le problème.

Résoudre le problème

Étant donné que les wakelocks peuvent décharger la batterie de l'appareil, vous ne devez pas les utiliser s'il existe une alternative. La documentation Choisir la bonne API pour maintenir l'appareil en éveil peut vous aider à trouver la meilleure solution pour votre application.

Si vous devez utiliser un wakelock, suivez les bonnes pratiques concernant les wakelocks pour vous assurer qu'ils n'affectent pas l'efficacité de l'appareil. En particulier, assurez-vous que chaque appareil que vous acquérez est libéré et libérez le verrouillage aussi rapidement que possible.

Votre application peut également utiliser des wakelocks même si vous ne les acquérez pas explicitement. Si vous voyez des verrous de réveil attribués à une application que vous ne reconnaissez pas, la section Identifier les verrous de réveil créés par d'autres API peut vous aider à identifier les API qui les ont peut-être créés.

Après avoir résolu le problème dans le code, vous pouvez vérifier vos corrections à l'aide des outils de débogage de wakelocks locaux.

Voir aussi