Gestion de l'alimentation de la plate-forme

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Pour améliorer la durée de vie de la batterie de l'appareil, Android peut affecter l'état de l'appareil en surveillant l'utilisation et l'éveil de l'appareil. La plate-forme peut entrer dans un état de veille pour interrompre l'exécution des activités pendant que l'appareil n'est pas utilisé.

Sommeiller

Doze prolonge la durée de vie de la batterie en différant l'activité du processeur et du réseau en arrière-plan de l'application lorsqu'un appareil n'est pas utilisé pendant de longues périodes.

Les appareils inactifs dans Doze entrent périodiquement dans une fenêtre de maintenance, au cours de laquelle les applications peuvent effectuer des travaux en attente (synchronisations, tâches, etc.). Doze reprend ensuite le sommeil pendant une période plus longue, suivie d'une autre fenêtre de maintenance. La plate-forme continue la séquence veille/maintenance Doze, en augmentant la durée d'inactivité à chaque fois, jusqu'à ce qu'un maximum de quelques heures de temps de veille soit atteint. À tout moment, un appareil dans Doze reste conscient du mouvement et quitte immédiatement Doze si un mouvement est détecté.

Android 7.0 et supérieur étend Doze pour déclencher un ensemble plus léger d'optimisations chaque fois qu'un utilisateur éteint l'écran de l'appareil, même lorsque l'utilisateur continue de se déplacer, permettant une durée de vie de la batterie plus longue.

Les services système critiques sont généralement mis en place par les fabricants d'appareils pour être exemptés de Doze. Les utilisateurs peuvent également exempter des applications spécifiques de Doze à l'aide du menu Paramètres. Cependant, l'exemption d'applications peut épuiser la batterie de l'appareil. Par défaut, Doze est désactivé dans AOSP ; pour plus de détails sur l'activation de Doze, voir Intégration de Doze .

Exigences de somnolence

La prise en charge de Doze nécessite que l'appareil dispose d'un service de messagerie cloud, tel que Firebase Cloud Messaging (FCM) . Les événements déclencheurs externes, tels que les messages cloud, peuvent temporairement réveiller les applications pour qu'elles fonctionnent pendant que l'appareil reste en mode Doze.

La prise en charge complète de Doze nécessite également un détecteur de mouvement important (SMD) sur l'appareil ; cependant, le mode Doze léger dans Android 7.0 et supérieur ne nécessite pas de SMD. Si Doze est activé sur un appareil qui :

  • A un SMD, des optimisations Doze complètes se produisent (y compris des optimisations légères).
  • N'a pas de SMD, seules les optimisations légères Doze se produisent.

Cycle de vie Doze

Doze commence lorsque la plate-forme détecte que l'appareil est inactif et se termine lorsqu'une ou plusieurs activités de critères de sortie se produisent.

Détection

La plateforme détecte qu'un appareil est inactif lorsque :

  • L'appareil est stationnaire (utilisant SMD).
  • L'écran de l'appareil est éteint pendant un certain temps.

Le mode Doze ne s'enclenche pas lorsqu'un appareil alimenté par batterie est branché sur un chargeur d'alimentation.

Pendant la somnolence

La plate-forme tente de maintenir le système en état de veille, en reprenant périodiquement les opérations normales pendant une fenêtre de maintenance, puis en remettant l'appareil en veille pendant des périodes répétées plus longues. Pendant le sommeil, les restrictions suivantes sont actives :

  • Les applications ne sont pas autorisées à accéder au réseau.
  • Wakelocks d'application ignorés.
  • Les alarmes sont différées. Exclut les alarmes de réveil et les alarmes définies à l'aide setAndAllowWhileIdle() (limité à 1 toutes les 15 minutes par application en mode Doze). Cette exemption est destinée aux applications (telles que Calendrier) qui doivent afficher des notifications de rappel d'événement.
  • Les analyses Wi-Fi ne sont pas effectuées.
  • Les synchronisations SyncAdapter et les tâches JobScheduler sont reportées jusqu'à la prochaine fenêtre de maintenance.
  • Les applications recevant des messages SMS et MMS sont placées sur une liste blanche temporaire afin qu'elles puissent terminer leur traitement.

Sortir

La plate-forme quitte l'appareil de Doze lorsqu'elle détecte :

  • Interaction de l'utilisateur avec l'appareil
  • Mouvement de l'appareil
  • L'écran de l'appareil s'allume
  • Réveil imminent

Les notifications ne font pas sortir l'appareil de Doze.

Android 7.0 et supérieur étend Doze en activant un mode veille léger lorsque l'écran est éteint, avant que l'appareil ne soit inactif.

Figure 1. Modes Doze pour les appareils non stationnaires et stationnaires
Action Sommeiller Sommeil léger
Gâchette Écran éteint, sur batterie, à l'arrêt Écran éteint, sur batterie (débranché)
Horaire Périodes successivement croissantes avec maintenance Périodes répétées de N minutes avec fenêtres de maintenance
Restrictions Pas d'accès au réseau, de verrouillage de réveil ou de balayage GPS/Wi-Fi ; alarmes et tâches/synchronisations différées Pas d'accès au réseau ; travaux/synchronisations différés sauf pendant les fenêtres de maintenance
Comportement Seuls les messages de notification push de haute priorité sont reçus Tous les messages en temps réel (messages instantanés, appels, etc.) reçus ; le message de notification push de haute priorité permet un accès temporaire au réseau
Sortir Mouvement, écran allumé ou réveil Allume l'écran

Interaction avec l'application en veille

  • Le temps passé dans Doze ne compte pas pour App Standby.
  • Lorsque l'appareil est en veille, les applications inactives sont autorisées à effectuer des opérations normales au moins une fois par jour.

Intégration de Doze

Lorsque Doze est activé, les appareils qui prennent en charge SENSOR_TYPE_SIGNIFICANT_MOTION effectuent des optimisations Doze complètes (y compris des optimisations légères) ; les appareils sans SMD n'effectuent que des optimisations Doze légères. Android sélectionne automatiquement les optimisations Doze appropriées et la configuration du fournisseur n'est pas nécessaire.

Pour activer Doze pour un appareil :

  1. Vérifiez qu'un service de messagerie cloud est installé sur l'appareil.
  2. Dans le fichier de configuration de superposition de l'appareil overlay overlay/frameworks/base/core/res/res/values/config.xml , définissez config_enableAutoPowerModes sur true :
    <bool name="config_enableAutoPowerModes">true</bool>
    
    Dans AOSP, ce paramètre est défini sur false (Doze disabled) par défaut.
  3. Vérifiez que les applications et services préchargés :
  4. Confirmez que les services nécessaires sont exemptés de Doze.

Des astuces

Tester et optimiser les applications

Testez toutes les applications (en particulier les applications préchargées) en mode Doze. Pour plus de détails, reportez-vous à Test avec Doze et App Standby .