← Tous les articles

Votre téléphone essaie de tuer cette app (et toutes les autres)

L’article batterie se terminait sur un avertissement : toute cette belle mécanique suppose que le système d’exploitation laisse l’application se réveiller quand les capteurs l’appellent. Ce billet parle des fois où il ne le fait pas.

Voici la vérité inconfortable avec laquelle vit toute application de localisation : votre téléphone traite les apps en arrière-plan comme des suspects. Il les gèle, les affame, et parfois les tue purement et simplement. C’est le plus souvent une bonne chose : c’est pour ça que votre batterie tient la journée. Mais une application dont le métier est « continue de veiller même quand je ne te regarde pas » est assise exactement sur la ligne de faille.

Pourquoi votre téléphone se méfie des apps, et pourquoi il a raison

Il y a dix ans, n’importe quelle app pouvait tourner quand elle voulait, et beaucoup ne s’en privaient pas : interrogations en boucle, synchronisations, pistage, batterie vidée. Les plateformes ont répondu par la force. Android a introduit Doze, qui plonge un téléphone inactif dans un sommeil profond où le travail d’arrière-plan est regroupé en de rares fenêtres. iOS est allé plus loin plus tôt : une app que vous ne regardez pas est suspendue en quelques secondes, point final.

Le marché que proposent désormais les deux plateformes est le même : le travail d’arrière-plan passe par nos canaux officiels, ou pas du tout. Pour la plupart des apps, un arrière-plan gelé est invisible. Pour une app de sécurité, c’est la différence entre « arrivée à l’école » et le silence.

Les canaux officiels, et comment Fenzly les utilise

Fenzly joue selon les règles, et le règlement offre trois façons légales d’exister en arrière-plan.

D’abord, le travailleur visible. Pendant l’enregistrement d’un trajet, Android exige un service de premier plan : l’application tourne avec une notification persistante à l’écran. Cette notification n’est pas décorative, c’est le contrat légal : l’OS épargne ce que l’utilisateur peut voir. Et elle est honnête par accident : vous savez toujours quand un enregistrement est actif.

Ensuite, les veilleurs de l’OS lui-même. Entre les trajets, Fenzly ne tourne pour ainsi dire pas ; il a délégué la veille au système, les géofences au niveau de la puce et le détecteur de mouvement. Quand quelque chose se produit, l’OS relance l’application pour quelques secondes : elle scelle, elle envoie, et la voilà regelée. L’application ne survit pas en arrière-plan ; elle ressuscite, brièvement, à la demande.

Enfin, le coup frappé à distance. Quand quelqu’un partage quelque chose avec vous et que votre app est morte, notre serveur ne peut pas l’atteindre directement ; il demande au service de notification de Google ou d’Apple de la réveiller, le maillon américain que nous avons déjà assumé. Un détail compte sur Android : une notification silencieuse et invisible est précisément le genre que certains téléphones ignorent pour les apps tuées, alors les réveils qui comptent voyagent en notifications visibles, à dessein.

Et puis il y a les téléphones qui ne suivent pas leurs propres règles

Tout ce qui précède est le contrat officiel. Le secret gênant du monde Android, c’est que plusieurs grands constructeurs superposent leurs propres gestionnaires de batterie, qui n’honorent pas ce contrat. Ils tuent des apps qui ont suivi toutes les règles, en silence, pour gagner des comparatifs d’autonomie. Le projet communautaire dontkillmyapp.com documente cela depuis des années, marque par marque ; certains des plus grands noms du marché sont aussi les pires élèves.

Android offre une défense partielle : une app peut demander à être exemptée de l’optimisation de batterie, et l’écran de configuration de Fenzly vous guide pour l’accorder, comme pour chaque permission, un écran à la fois, avec le pourquoi. Sur la plupart des téléphones, cela suffit.

Nous vous devons ici une histoire de terrain, parce qu’elle définit la limite. Pendant nos propres tests, un téléphone qui avait déjà l’exemption de batterie a gelé la détection de mouvement de l’app pendant plus de deux heures, en plein trajet de deux heures, alors que le même téléphone gardait sa connexion réseau vivante. L’exemption que vous accordez couvre beaucoup de choses ; elle ne couvre pas tout, sur toutes les marques. Quiconque vous dit que son app de localisation « marche, c’est tout » sur chaque téléphone Android n’a pas testé sur assez de téléphones Android.

Concevoir pour un monde qui vous tue

Puisqu’on ne peut pas empêcher chaque gel, l’objectif d’ingénierie se déplace : faire qu’un gel produise un trou, jamais un mensonge, et refermer le trou dès que possible.

Ce principe se retrouve partout dans Fenzly. Les événements qui n’ont pas pu être observés sont reconstruits au réveil suivant : un départ manqué est corrigé par le prochain franchissement réel, et tout ce qui attend d’être partagé patiente en sécurité dans la file hors ligne jusqu’à pouvoir partir. Et plutôt que de laisser un téléphone silencieux afficher tranquillement une position périmée, Fenzly montre le silence lui-même : quand le téléphone d’un proche n’a plus donné signe de vie depuis des heures, la carte le dit, « sans connexion depuis 14:20 », au lieu de vous laisser croire un point figé.

Une vieille position présentée comme actuelle est la panne la plus dangereuse qu’une app de sécurité puisse avoir. Nous préférons vous montrer un point d’interrogation honnête qu’un mensonge assuré.

Les limites honnêtes

Aucune app ne gagne contre l’OS, la nôtre comprise. Un téléphone éteint, à plat, ou dont l’app a été arrêtée de force manuellement ne peut être réveillé par personne. Les marques agressives changent de comportement à chaque version d’Android : c’est une bataille mouvante, pas un problème résolu. Et sur iOS, les règles sont plus strictes mais uniformes : moins de surprises de marque, moins de souplesse.

Si Fenzly vous semble un jour silencieux sur un téléphone, la liste de contrôle de l’écran de configuration et l’exemption de batterie sont les premiers endroits où regarder. Et quand le silence est réel, l’app vous dira au moins que c’en est un.


La suite du chapitre ingénierie : votre téléphone prétend savoir si vous êtes à pied, à vélo ou en voiture. Il se trompe souvent, de façons plus drôles que vous ne l’imaginez, nous vous montrerons pourquoi, et ce que nous y faisons.