Si la batterie de votre téléphone se décharge beaucoup plus vite que prévu et que vous remarquez des choses étranges, comme l'écran qui s'allume tout seul ou le téléphone qui semble constamment « réfléchir », vous avez probablement un problème avec verrous de réveil actifs en arrière-planCe n'est pas de la sorcellerie ni un problème avec votre téléphone : ce sont les applications qui empêchent le système de se mettre au repos quand il le devrait.
La bonne nouvelle, c'est que tout cela peut faire l'objet d'une enquête et être corrigé. Tout au long de cet article, nous verrons comment. Que sont exactement les wakelocks, comment les détecter sur votre téléphone portable et que pouvez-vous faire contre eux ? Que vous soyez un utilisateur régulier ou un développeur souhaitant optimiser son application et éviter d'être pénalisé par Google Play pour utilisation abusive.
Qu'est-ce qu'un wakelock et pourquoi consomme-t-il de la batterie ?
Sous Android, un wakelock est essentiellement une commande qu'une application donne au système pour l'empêcher de se mettre en veilleIl fait partie du service de gestion de l'alimentation propre au système d'exploitation et son objectif initial est louable : permettre à certaines tâches de continuer à s'exécuter même lorsque l'écran est éteint ou que l'appareil passe en mode basse consommation.
Lorsque tout fonctionne correctement, le téléphone portable entre périodiquement en veille profonde, mode d'économie d'énergie maximalDans cet état, le processeur fonctionne à peine et la plupart des processus s'arrêtent ou ne se réactivent que sporadiquement. Le problème survient lorsqu'une application… Il abuse de ses privilèges de verrouillage de réveil et maintient le processeur ou l'écran éveillé. et bien plus longtemps que nécessaire.
Au sein des wakelocks, on peut distinguer deux types principaux ayant des effets différents sur la consommation :
- Verrouillage partiel de réveilCela permet au processeur de rester actif même lorsque l'écran est éteint. C'est utile, par exemple, pour qu'une application puisse terminer un téléchargement ou traiter des données en arrière-plan sans être interrompue par le système.
- Verrouillage de réveil plein écran ou écran complet (Verrouillage de réveil plein écran / écran complet): en plus de maintenir le processeur actif, force l'écran à rester allumé ou à s'allumerSa consommation d'énergie est beaucoup plus importante, car l'écran est l'un des composants qui consomment le plus d'énergie de la batterie.
Un exemple typique de verrouillage de réveil mal géré serait une application qui, en raison d'une erreur de programmation, Laissez la caméra ou le processeur constamment actif. Même si vous n'utilisez plus l'application. Pendant un temps, l'exemple de Skype sur certains appareils Nexus a fait couler beaucoup d'encre : l'application maintenait les processus de la caméra actifs en arrière-plan, et la batterie se déchargeait à une vitesse folle, comme si vous enregistriez une vidéo en permanence.
Une application demandant un wakelock n'est pas intrinsèquement mauvaise. En fait, il existe des utilisations parfaitement légitimes et bénéfiques. Par exemple, YouTube maintient votre écran allumé pendant que vous regardez une vidéo pour éviter qu'il ne s'éteigne en pleine lecture. L'essentiel est que le développeur Libérez ce verrou de réveil dès qu'il n'est plus nécessaire. et qu'il ne maintient pas l'appareil éveillé sans raison.
Symptômes typiques indiquant un problème de wakelocks
Même si rien d'inhabituel ne saute aux yeux au premier abord, le comportement du téléphone révèle souvent qu'une application abuse des wakelocks. Voici quelques signes révélateurs :
- L'écran ne s'éteint pas quand il le devrait.Vous avez configuré un délai d'expiration court, mais le panneau reste allumé beaucoup plus longtemps, même si vous ne le touchez pas.
- L'écran s'allume tout seulVous sortez votre téléphone de votre poche et vous le trouvez avec l'écran allumé, voire en train d'effectuer une action tout seul, comme des appels accidentels.
- Chute de batterie très soudaine en veilleVous laissez votre téléphone sur la table, écran éteint, et au bout d'une heure, vous constatez une baisse disproportionnée de l'autonomie de la batterie.
- L'appareil est chaud même lorsqu'il n'est pas utilisé.Le processeur reste actif en raison d'un verrouillage partiel de l'alimentation, et le téléphone génère plus de chaleur même lorsque l'écran est éteint.
Ces comportements sont généralement dus à des applications qui Ils continuent de fonctionner en arrière-plan et obligent le processeur ou l'écran à rester allumé.Il ne s'agit pas forcément d'applications malveillantes ; souvent, ce sont simplement des applications mal programmées ou des applications qui ne respectent pas correctement les politiques d'économie d'énergie des dernières versions d'Android.
Comment Android détecte-t-il les wakelocks dans les applications (Android vitals) ?

Du point de vue du développeur, Google propose des outils permettant de détecter si leur application utilise les wakelocks de manière excessive. L'un des plus importants est : Android vitals, intégré à Google Play Console, qui collecte des données sur les performances et la consommation de la batterie auprès de millions d'appareils réels.
Android Vitals considère qu'une application effectue une action Utilisation excessive des verrous de réveil partiels lorsque la somme de tous les verrous de réveil non exemptés exécutés par l'application atteint 2 heures ou plus sur une période de 24 heures Que ce soit en arrière-plan ou au sein d'un service de premier plan, si votre application maintient le processeur actif trop longtemps alors que l'utilisateur ne l'utilise pas, la métrique augmentera brusquement.
Pour éviter de pénaliser une utilisation raisonnable, les fonctions vitales d'Android exclut certains verrous de réveil générés par des API clairement initiées par l'utilisateurPar exemple, celles liées à la lecture audio, à la géolocalisation ou aux tâches planifiées via JobScheduler. Le critère est qu'il existe un avantage évident pour l'utilisateur et qu'il n'y a pas de meilleur moyen d'y parvenir sans utiliser de wakelocks.
Dans la console de développement, le panneau « Verrous de réveil partiels excessifs » affiche les noms des wakelocks qui causent le plus de problèmes, le nombre de sessions affectées et la durée totaleSi plus de 5 % des sessions de l'application au cours des 28 derniers jours présentent des réveils partiels excessifs, cela pourrait finir par affecter la visibilité de l'application sur Google Play.
Lorsqu'une application reçoit cette alerte, la prochaine étape logique est localiser les parties du code qui acquièrent ces verrous de réveil et corriger leur utilisation.: remplacez-les par des API plus modernes qui gèrent elles-mêmes leur cycle de vie, cessez de les utiliser si elles ne sont pas essentielles, ou au moins assurez-vous de toujours les publier à temps.
Bonnes pratiques concernant les wakelocks pour les développeurs
Pour les développeurs d'applications Android, l'API clé ici est PowerManager et ses blocs d'activation partielleUn verrouillage de réveil partiel est normalement acquis en appelant acquire() avec la marque PARTIAL_WAKE_LOCKou en utilisant d'autres API qui font la même chose en interne.
Le problème survient lorsque l'application oublier de libérer ce verrou de réveil avec release()ou la maintient active plus longtemps que nécessaire. Cela empêche l'appareil de passer en mode basse consommation et entraîne des plaintes des utilisateurs concernant l'autonomie de la batterie, de mauvaises notes sur Google Play et, comme nous l'avons constaté, une baisse des indicateurs clés de performance Android.
Voici quelques recommandations de base pour programmer avec des wakelocks sans nuire à l'autonomie de la batterie de l'utilisateur :
- Ne les utilisez pas s'il existe une alternative moderne.De nombreuses tâches qui nécessitaient auparavant des verrous de réveil directs peuvent désormais être résolues avec WorkManager, JobScheduler, AlarmManager avec restrictions, FCM, etc.
- Acquérir le verrou de réveil le plus tard possible et le relâcher dès que possible.Ne laissez pas cette ressource immobilisée pendant toute la durée de vie d'un service si vous n'en avez besoin que pour une opération spécifique.
- Tenez compte de l'état de l'applicationSi l'utilisateur se déconnecte, ferme l'activité principale ou désactive certaines fonctions, il est inutile de maintenir le processeur actif.
- Moniteur sur appareils réelsAprès avoir modifié le code, il est conseillé de vérifier le comportement à l'aide d'outils de débogage Wakelock locaux et en consultant périodiquement les rapports Android essentiels.
Dans certains cas, vous verrez des verrous de réveil attribués à votre application alors que vous ne les avez pas créés explicitement. Cela est généralement dû à… API de haut niveau qui utilisent en interne des verrous de réveil Pour garantir son bon fonctionnement, il est essentiel de comprendre quel composant se cache derrière ces blocs d'activation. Cela vous aidera à décider s'il convient de changer d'API ou de revoir sa configuration.
Comment détecter les wakelocks sur son téléphone portable en tant qu'utilisateur ?
Si, en tant qu'utilisateur régulier, vous souhaitez savoir quelles applications maintiennent votre téléphone éveillé, plusieurs options s'offrent à vous. Android propose de plus en plus de fonctionnalités permettant de savoir quelles applications maintiennent votre téléphone en veille. Plus d'informations sur l'autonomie de la batterie et la surveillance de l'activité en arrière-plan directement depuis les paramètres système, mais vous pouvez aller encore plus loin avec des outils spécialisés ou avec ADB.
Utiliser les paramètres de la batterie Android
Dans les dernières versions d'Android, le premier endroit à consulter est le menu de la batterie système. Vous le trouverez dans Paramètres → Batterie. Quelles applications consomment le plus de batterie et quelle est leur consommation en arrière-plan ?Bien que le mot « wakelock » ne soit pas affiché, ces consommations d'énergie anormales en veille sont généralement liées aux verrous de réveil.
C'est aussi possible restreindre l'utilisation en arrière-plan de certaines applications directement depuis cet emplacement. De cette façon, le système limite leur activité lorsque vous ne les utilisez pas, ce qui réduit indirectement l'impact des verrous de réveil qui peuvent être générésCependant, une restriction excessive peut entraîner l'arrêt de la synchronisation de certaines applications ou un retard dans l'envoi des notifications.
Applications de surveillance de la batterie : GSam et BetterBatteryStats
Bien que de nombreux outils classiques aient disparu ou soient devenus obsolètes, il existe encore des applications qui Ils affichent des informations de consommation avancées et des réveils.Deux noms assez connus sont GSam Battery Monitor et BetterBatteryStats.
GSam Battery Monitor vous permet de voir, entre autres, Quelles sont les applications qui réveillent le plus souvent l'appareil ? et comment la consommation d'énergie est répartie entre le processeur, l'écran, la radio mobile, le Wi-Fi, etc. BetterBatteryStats, très populaire dans la communauté XDA, offre des vues très détaillées de réveils, les « alarmes » et autres événements système, particulièrement utiles sur les appareils rootés.
Grâce à ces outils, vous pouvez détecter, par exemple, que Un service spécifique comme WhatsApp ou Google Photos maintient le processeur actif. Ces informations vous permettent de prendre des décisions concernant les sauvegardes, la synchronisation ou les tâches en file d'attente : modifier les paramètres de sauvegarde, désactiver certaines options ou rechercher des alternatives.
Commande ADB pour afficher les verrous de réveil actifs
Si vous ne souhaitez pas utiliser d'applications tierces ou si vous préférez une approche plus technique, vous pouvez utiliser ADB depuis votre ordinateur. Après avoir installé ADB et activé le débogage USB sur votre téléphone, vous pouvez exécuter une commande similaire à celle-ci :
adb shell dumpsys power | findstr -i wake_lock
Sur les systèmes Linux ou macOS, au lieu de findstr il est couramment utilisé grep pour filtrer la sortieLa sortie de la commande affichera les verrous de réveil actuellement actifs sur le périphérique, avec des noms qui correspondent généralement aux services système ou aux applications installées.
Cette liste peut inclure des éléments tels que DreamManagerService, WhatsApp SystemJobService ou Services Google Photos Ces informations concernent les tâches en arrière-plan. Bien que leur nom soit parfois obscur, il permet d'identifier l'application responsable de la consommation de ressources et de déterminer s'il est judicieux de laisser l'appareil actif aussi longtemps.
Wakelock Detector : l'application classique pour localiser les wakelocks
Pendant des années, l'une des options les plus populaires pour détecter les wakelocks sur Android était Détecteur WakelockCette application était conçue spécifiquement pour lister les applications qui maintenaient l'appareil éveillé et pendant combien de temps. Bien qu'elle ne soit plus disponible et ne soit plus mise à jour pour les dernières versions d'Android, il reste intéressant de comprendre ses fonctionnalités, car nombre de ses idées ont été reprises par d'autres outils.
L'application a été conçue pour les utilisateurs qui souhaitaient Consultez en détail les processus qui utilisaient le processeur et les verrous de réveil de l'écran.Il affichait les statistiques de tous les réveils enregistrés depuis le dernier démarrage de l'appareil, en regroupant ceux liés à la même application dans une vue extensible pour une lecture plus facile.
Parmi ses principales fonctions, les suivantes se sont particulièrement distinguées :
- Statistiques de réveil du processeur (partiel) et de l'écran (complet)vous permettant de basculer entre les deux types depuis le haut de l'interface.
- Trier par durée de réveil, état d'exécution ou ordre alphabétiquece qui a permis de trouver les applications qui maintenaient l'appareil éveillé le plus longtemps.
- Les demandes actuellement actives sont marquées en rouge.identifier d'un coup d'œil ce qui se passait à ce moment précis.
- Affichage du pourcentage de temps pendant lequel le processeur a été actif ou en veille. depuis le dernier cycle de charge ou redémarrage.
Son utilisation recommandée était simple : il était suggéré Chargez le téléphone à plus de 90 %, puis débranchez-le ou redémarrez-le.Laissez l'ordinateur fonctionner normalement pendant une heure ou deux, puis ouvrez Wakelock Detector pour vérifier quelles applications apparaissent en tête de la liste des temps de réveil. Dans de nombreux cas, il s'agissait des applications responsables de la consommation excessive de la batterie lorsque l'ordinateur était inactif.
L'un des points sensibles de Wakelock Detector était que, À partir d'Android KitKat, un accès root était nécessaire pour que l'application fonctionne avec toutes les autorisations requises.Cela était dû à des modifications apportées à l'affichage des statistiques de la batterie par le système. Ses développeurs ont publié une version LITE proposant une méthode alternative, sans accès root, basée sur les commandes ADB ou même une extension Chrome, mais nécessitant le respect d'un guide d'installation préalable.
L'application a connu un succès considérable au sein de la communauté : elle a été testée sur XDA, HowToGeek, LifeHacker, DotTech et d'autres sites web spécialisés en technologie, et de nombreux utilisateurs l'ont utilisée comme référence pour pour compléter les informations de consommation de base fournies par AndroidIl est toutefois important de noter que ce logiciel est actuellement obsolète et n'est plus maintenu par ses développeurs ; il peut donc fournir des informations incomplètes ou même ne pas fonctionner sur les téléphones mobiles modernes.
Autres applications et méthodes classiques pour contrôler les verrous de réveil
Outre Wakelock Detector, il existait et il existe encore d'autres outils destinés à Contrôlez les applications qui s'exécutent en arrière-plan et leur impact sur l'autonomie de la batterie.L'un des plus connus était Amplify, qui permettait un réglage assez précis du comportement des verrous de réveil et des alarmes système sur les appareils rootés, bien qu'il soit également abandonné.
Une autre catégorie d'applications étroitement liée à ce sujet est celle des applications d'économie de batterie et de gestion des processus, telles que : Greenify ou SD MaidCes fonctionnalités, particulièrement utiles sur les appareils plus anciens pour la mise en veille prolongée ou le gel des applications impossibles à désinstaller, notamment les logiciels préinstallés ou les applications inutiles, réduisaient considérablement le risque de blocages continus de l'appareil. En interrompant leur activité en arrière-plan, elles diminuaient également la possibilité qu'elles provoquent ces blocages.
Au sein de cet écosystème, il est également apparu Détecteur de Wakelock – Économisez la batterieUne version s'attachait à montrer quels services ou processus consommaient le plus d'énergie. Son approche était plus simple : Il répertoriait les processus système et leur consommation associée.Cela était particulièrement vrai en raison de la fréquence d'accès à Internet et de l'activité en arrière-plan. Ainsi, l'utilisateur pouvait immédiatement voir si Gmail, WhatsApp ou une autre application consommait trop de ressources et décider de les fermer temporairement s'il savait qu'il n'en aurait pas besoin.
Dans ces cas-là, la philosophie qui sous-tend l'outil était claire : Afficher les informations et laisser l'utilisateur décider de la marche à suivre., que ce soit en forçant l'arrêt d'une application, en limitant sa synchronisation ou simplement en la désinstallant si elle n'était pas essentielle.
Que faire si vous détectez des wakelocks qui vident votre batterie ?
Une fois que vous avez identifié les applications qui empêchent votre téléphone de sortir de l'écran, il est temps de prendre des décisions. La solution la plus efficace est généralement aussi la plus simple : désinstaller ou désactiver les applications problématiquespour autant qu'elles ne soient pas essentielles à votre vie quotidienne.
Si vous ne pouvez pas ou ne souhaitez pas les désinstaller, vous pouvez utiliser les options proposées par Android dans Paramètres → Applications → . Vous y trouverez l'option permettant de limiter son activité en arrière-plan, supprimer les autorisations dont il n'a pas besoin ou empêcher son démarrage automatiqueCes mesures suffisent généralement à maîtriser le comportement de nombreuses applications sans avoir à les supprimer.
Sur les appareils plus anciens ou ceux dotés de couches de personnalisation importantes, il peut être utile d'utiliser des outils comme Greenify permet de mettre en hibernation les applications que vous utilisez rarement mais qui se réveillent constamment.Dans certains cas avancés, et toujours avec une grande prudence, il est possible de geler des applications système dont on sait pertinemment qu'elles sont inutiles, bien que cela relève du domaine des utilisateurs disposant d'un accès root et de connaissances techniques plus poussées.
Bien sûr, il convient de garder à l’esprit que restreindre excessivement l'activité des applications de messagerie, des courriels ou des services de sauvegarde Cela peut entraîner la perte de notifications, la désactivation de la synchronisation automatique ou des ralentissements dans certaines tâches. Il s'agit de trouver un juste équilibre entre autonomie de la batterie et fonctionnalités.
En définitive, comprendre ce que sont les wakelocks et comment vos applications se comportent vous permet de mieux contrôler la batterie de votre téléphone. En identifiant les applications qui abusent du maintien du processeur ou de l'écran éveillé, en ajustant leurs paramètres, en limitant leur activité en arrière-plan ou en les remplaçant par des alternatives mieux optimisées.Vous pouvez ainsi prolonger l'autonomie quotidienne de votre appareil et éviter ces décharges intempestives si frustrantes.