Gestion de l'alimentation de la plate-forme avec Sommeil

Pour améliorer l'autonomie de la batterie, Android peut modifier l'état de l'appareil en en surveillant l'utilisation et l'état de veille de l'appareil. La plate-forme peut entrer un état mise en veille pour suspendre la course à pied des activités lorsque l'appareil n'est pas utilisé.

À propos de la fonctionnalité Sommeil

La fonctionnalité Sommeil prolonge l'autonomie de la batterie en reportant le processeur en arrière-plan de l'application et activité réseau lorsqu'un appareil n'est pas utilisé pendant de longues périodes.

Les appareils inactifs dans le mode Sommeil entrent régulièrement dans un intervalle de maintenance pendant lequel applications peuvent terminer les tâches en attente (synchronisations, tâches, etc.). La fonctionnalité Sommeil reprend en veille pendant une période plus longue, suivie d'un autre intervalle de maintenance. La continue la séquence de sommeil/d'entretien Sommeil, ce qui augmente la durée des inactif à chaque fois, jusqu'à atteindre un délai de mise en veille maximal de quelques heures. Pas du tout de sommeil, un appareil en mode Sommeil reste conscient des mouvements et quitte immédiatement le mode Sommeil. si un mouvement est détecté.

Android 7.0 et versions ultérieures étendent la fonctionnalité Sommeil pour déclencher un ensemble d'optimisations plus léger chaque fois qu'un utilisateur éteint l'écran de son appareil, même s'il continue de ce qui permet de prolonger l'autonomie de la batterie.

Les services système essentiels sont généralement configurés par les fabricants d’appareils pour être être exempté de la fonctionnalité Sommeil. Les utilisateurs peuvent également exclure des applications spécifiques de la fonctionnalité Sommeil à l'aide de la Menu "Paramètres". Toutefois, exempter des applications peut entraîner un déchargement rapide de la batterie de l'appareil. Par défaut, la fonctionnalité Sommeil est désactivée dans AOSP. pour pour en savoir plus sur l'activation de la fonctionnalité Sommeil, consultez Intégrer la fonctionnalité Sommeil.

Conditions requises pour le mode Sommeil

La fonctionnalité Sommeil nécessite que l'appareil dispose d'un service de messagerie dans le cloud, tel que Firebase Cloud Messaging (FCM). Les événements déclencheurs externes, tels que Cloud Messages, peut temporairement activer les applications pour qu'elles fonctionnent tant que l'appareil reste en mode Sommeil.

La prise en charge complète du mode Sommeil nécessite également importante un détecteur de mouvement (SMD) sur l'appareil. mais le mode Sommeil léger Android 7.0 ou version ultérieure ne nécessite pas de logiciel SMD. Si la fonctionnalité Sommeil est activée sur un appareil que:

  • dispose d'un SMD ; l'optimisation Sommeil est complète (y compris et optimisations).
  • Ne possède pas de SMD, seules les optimisations légères de la fonctionnalité Sommeil sont effectuées.

Cycle de vie Sommeil

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

La plate-forme détecte qu'un appareil est inactif dans les cas suivants:

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

Le mode Sommeil ne s'active pas lorsqu'un appareil sur batterie est branché sur un chargeur.

Pendant le sommeil

La plate-forme tente de maintenir le système en veille, régulièrement reprise des opérations normales pendant un intervalle de maintenance, puis retour de l'appareil de se répéter plus longtemps. Pendant votre sommeil : restrictions sont actives:

  • Les applications ne sont pas autorisées à accéder au réseau.
  • Les wakelocks d'application sont ignorés.
  • Les alarmes sont différées. Exclut les alarmes et les alarmes définies via setAndAllowWhileIdle() (limité à 1 par tranche de 15 minutes par application en mode Sommeil). Cette exception concerne les applications (Agenda, par exemple) qui doivent afficher les notifications de rappel d'événement.
  • Aucune recherche Wi-Fi n'est effectuée.
  • SyncAdapter synchronisations et JobScheduler jobs reportés jusqu'au prochain intervalle de maintenance.
  • Les applications qui reçoivent des SMS et des MMS sont ajoutées à une liste blanche temporaire afin que afin qu'ils puissent terminer leur traitement.

Quitter

La plate-forme quitte l'appareil depuis le mode Sommeil lorsqu'elle détecte:

  • Interaction de l'utilisateur avec l'appareil
  • Mouvements de l'appareil
  • L'écran de l'appareil s'allume
  • Alarme Alarme imminente

Les notifications n'empêchent pas l'appareil de quitter le mode Sommeil.

Android 7.0 et versions ultérieures améliorent la fonctionnalité Sommeil en activant un mode Sommeil léger lorsque l'écran est éteint, avant que l'appareil ne soit inactif.

Figure 1 : Modes Sommeil des appareils non fixes et fixes.

Action Sommeil Sommeil léger
Déclencheur Écran éteint, sur batterie, à l'arrêt Écran éteint, sur batterie (débranché)
Durée Augmentation successive des périodes avec maintenance Périodes de N minutes répétées avec des intervalles de maintenance
Restrictions Pas d'accès au réseau, de wakelock ni de recherche GPS/Wi-Fi alarmes et jobs/synchronisations différée Aucun accès réseau Jobs/synchronisations différés, sauf pendant les intervalles de maintenance
Comportement Seuls les messages de notification push à priorité élevée ont été reçus Tous les messages en temps réel (messages instantanés, appels, etc.) reçus un message de notification push à priorité élevée active un accès temporaire au réseau
Quitter Mouvement, écran activé ou réveil Écran activé

Interaction avec App Standby

  • Le temps passé en mode Sommeil n'est pas pris en compte dans la mise en veille des applications.
  • Lorsque l'appareil est en mode Sommeil, les applis inactives sont autorisées à fonctionner normalement au moins une fois par jour.

Intégrer la fonctionnalité Sommeil

Lorsque la fonctionnalité Sommeil est activée, les appareils compatibles SENSOR_TYPE_SIGNIFICANT_MOTION effectuer des optimisations complètes du mode Sommeil (y compris des optimisations légères) ; les appareils sans SMD n'effectuent que des optimisations légères du mode Sommeil. Android sélectionne automatiquement les optimisations de sommeil et le fournisseur appropriés de configuration n'est pas nécessaire.

Pour activer la fonctionnalité Sommeil sur un appareil:

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

Conseils

Tester et optimiser des applications

Testez toutes les applications (en particulier celles préchargées) en mode Sommeil. Pour en savoir plus, consultez Test avec les fonctionnalités Sommeil et Mise en veille des applications.