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 etJobScheduler
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:
- Vérifiez qu'un service de messagerie dans le cloud est installé sur l'appareil.
- Dans le fichier de configuration de la superposition d'appareil
overlay/frameworks/base/core/res/res/values/config.xml
, définiconfig_enableAutoPowerModes
àtrue
: Dans AOSP, ce paramètre est défini sur<bool name="config_enableAutoPowerModes">true</bool>
false
(Sommeil désactivé) par défaut.
- Vérifiez que les applications et services préchargés:
<ph type="x-smartling-placeholder">
- </ph>
- Utilisez les
économie d'énergie
consignes d'optimisation. Pour en savoir plus, consultez la section Tester et
optimiser les applications.
OR
- ne sont pas concernés par les fonctionnalités Sommeil et Mise en veille des applications. Pour en savoir plus, consultez Exempter des applications
- Utilisez les
économie d'énergie
consignes d'optimisation. Pour en savoir plus, consultez la section Tester et
optimiser les applications.
- Confirmez que les services nécessaires sont exemptés de la fonctionnalité Sommeil.
Conseils
- Si possible, utilisez FCM pour en aval messagerie.
- Si vos utilisateurs doivent voir une notification immédiatement, utilisez un FCM message à priorité élevée.
- Fournissez suffisamment d'informations dans le message charge utile (pour éviter tout accès réseau ultérieur inutile).
- Définissez des alarmes critiques avec
setAndAllowWhileIdle()
etsetExactAndAllowWhileIdle()
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.