L'autonomie

Ce qui vide la batterie d'un téléphone, les limites que le système impose au travail de fond, le verrou d'éveil, le regroupement et le report des tâches, et le choix de la précision et de la fréquence de la position.

  • 29 cartes
  • 7 thèmes
  • Gratuit

Le programme, thème par thème

Le poids de chaque thème suit celui que lui donne l'examen.

  1. Notions
  2. Questions
  3. Ranger et relier
  4. Sur la frise
  5. Les chiffres
  6. Mises en situation
  7. Comprendre

Quelques cartes du deck

  • Consommation de batterie : de quoi s'agit-il ?

    Voir la réponse

    Énergie que l'application fait dépenser au téléphone, surtout par l'écran, la radio (réseau, GPS) et le processeur tenu éveillé.

    Une application coûte peu quand elle ne fait rien ; ce qui pèse, c'est ce qu'elle réveille : un envoi réseau, une mesure GPS, un calcul qui tient le processeur hors veille.

  • Qu'est-ce qui cloche dans ce code ?

    ```kotlin
    val lock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "app:sync")
    lock.acquire()
    syncAll()
    `

    • Le verrou n'est jamais relâché : release() manque, même après une synchronisation réussie
    • PARTIAL_WAKE_LOCK allume l'écran pendant la synchronisation
    • Un verrou d'éveil ne peut être pris que dans l'activité au premier plan
    • Le nom "app:sync" est réservé au système
    Voir la réponse

    Le verrou n'est jamais relâché : release() manque, même après une synchronisation réussie

    Le verrou est acquis mais jamais relâché : le processeur reste éveillé écran éteint. Il faut try { syncAll() } finally { lock.release() }, pour qu'une exception ne l'empêche pas non plus, et acquire(10 * 60 * 1000L) pour qu'il expire seul. PARTIAL_WAKE_LOCK garde seulement le processeur, pas l'écran.

  • Un verrou d'éveil doit toujours être … une fois le travail fini, dans un bloc …, pour qu'une exception ne le laisse pas actif.

    Voir la réponse

    Un verrou d'éveil doit toujours être relâché une fois le travail fini, dans un bloc finally, pour qu'une exception ne le laisse pas actif.

    Sans release(), le processeur reste éveillé écran éteint jusqu'à la mort du processus. acquire(délai) ajoute une sécurité : le verrou se relâche seul.

  • Travail de fond : de quoi s'agit-il ?

    Voir la réponse

    Tâche exécutée par l'application sans écran visible : synchronisation, téléversement, rappel, mise à jour de données.

    Le système limite ce travail pour protéger la batterie : une application ne peut pas supposer qu'elle tournera à l'instant voulu quand son écran est fermé.