Wakelocks partiels excessifs (bêta)

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 si l'utilisation de wakelocks partiels par votre application est excessive.

Android Vitals

Android Vitals améliore les performances de votre application en vous alertant via la Play Console lorsque votre application utilise des wakelocks partiels de manière excessive.

Android Vitals considère que l'utilisation des wakelocks partiels est excessive lorsque tous les wakelocks partiels, additionnés, s'exécutent pendant trois heures ou plus sur une période de 24 heures.

Android Vitals ne suit le temps que si le wakelock est maintenu lorsque l'application est en arrière-plan et ne dispose pas d'un service de premier plan.

Android Vitals applique certaines exceptions à l'utilisation du wakelock partiel dans les scénarios où le wakelock partiel présente un avantage clair pour l'utilisateur et qu'il n'existe pas de meilleure façon d'obtenir ce résultat sans le wakelock partiel. Dans ce cas, Android Vitals peut ne pas comptabiliser la durée du wakelock partiel dans la limite de trois heures. Par exemple, si une application lit de l'audio pour l'utilisateur, il est clair qu'il est avantageux de maintenir l'appareil allumé. Il n'existe aucun moyen de lire l'audio sans maintenir l'appareil allumé. Dans ce cas, la durée du wakelock partiel n'est pas comptabilisée dans les données Android Vitals.

Si des verrouillages de réveil partiels excessifs se produisent dans plus de 5% des sessions d'application sur tous les appareils sur une période de 28 jours, cela peut affecter la visibilité de votre application sur Play une fois que la métrique est 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 autre solution. La documentation Choisir la bonne API pour maintenir l'appareil éveillé 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.

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

Voir aussi