Je travaille sur une application Android qui collecte des données de capteurs sur plusieurs heures. Pour cela, nous avons un service qui collecte les données des capteurs (par exemple, accélération, GPS, ), effectue un traitement et les stocke à distance sur un serveur.
Actuellement, ce service s'exécute dans un processus séparé (en utilisant la fonction Android:service=":background" dans le manifeste). Cela complique la communication entre les activités et le service, mais mes prédécesseurs ont créé l'application de cette façon parce qu'ils voulaient pensée que le fait de séparer le Service des Activités le rendrait plus stable.
J'aimerais avoir des raisons plus factuelles pour justifier l'effort que représente l'exécution d'un processus distinct. Quels sont les avantages ? Le fonctionnement est-il vraiment plus stable ? Le service est-il moins susceptible d'être tué par le système d'exploitation (pour libérer des ressources) s'il se trouve dans un processus distinct ?
Notre application utilise startForeground() et des amis pour minimiser les chances de se faire tuer par l'OS.
La documentation Android n'est pas très précise à ce sujet, elle indique principalement que cela dépend de l'objectif de l'application ;-)
TL;DR Quelles sont les raisons objectives de placer un service qui s'exécute longtemps dans un processus distinct (dans Android) ?