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 .