2 votes

Existe-t-il un cache GPS commun sur Android ?

D'après ce que j'ai compris de la sécurité d'Android, toutes les applications sont séparées par des comptes d'utilisateurs différents et des emplacements de systèmes de fichiers différents.

MAIS : Après que le GPS-test ait fixé ma position pour la première fois après la mise sous tension, toutes les autres applications se fixent très rapidement. Ma conclusion : Cela doit être quelque chose qui n'est pas dans l'espace utilisateur d'Android.

Alors comment ça marche ?

5voto

Andy Brudtkuhl Points 1714

Si chaque application devait interpréter elle-même les données brutes du GPS, ce serait très bête. Différentes applications reproduiraient le même effort de décodage et d'interprétation de l'entrée GPS pour calculer une localisation. Les différentes applications finiraient par utiliser des bibliothèques différentes pour le faire, et chaque application pourrait donc avoir une idée différente de votre position.

Au lieu de cela, le processus d'interprétation des données GPS pour calculer une localisation est géré de manière centralisée dans Android lui-même. Le système Android offre une interface permettant aux applications d'interroger la localisation sans avoir à se soucier de savoir si elle provient du GPS, des tours de téléphonie mobile ou des réseaux Wi-Fi.

De cette façon, seul le système Android doit calculer l'emplacement, en utilisant toutes les sources possibles, il peut donner cet emplacement à de nombreuses applications sans dupliquer les efforts, et (comme vous l'avez remarqué) chaque application n'a pas à partir de zéro pour calculer l'emplacement. Les versions plus récentes d'Android proposent également des astuces astucieuses, telles que l'attribution d'une localisation moins précise aux applications qui disposent de l'autorisation de "localisation approximative (basée sur le réseau)" mais pas de l'autorisation de "localisation précise (GPS)", quelles que soient les méthodes réellement utilisées pour déterminer la localisation.

En interne, cela fonctionne avec ce que l'on appelle une lié service système : un mécanisme IPC permettant à différents processus de recevoir des données du service qui calcule réellement la localisation. Le service est exécuté dans l'espace utilisateur, et non dans le noyau, et comme toute autre application Android, il est exécuté dans son propre processus. (Seuls les niveaux très bas du pilote du récepteur GPS s'exécutent dans le noyau). Les détails de ce processus dépassent largement le cadre de ce site, mais si vous êtes intéressé, vous pouvez en savoir plus en lisant le document suivant Page sur les stratégies de localisation dans le Guide officiel des développeurs Android .

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X