Bei Android-Mobilgeräten ermöglicht die Unterstützung mehrerer Nutzer die Ausführung in der im Hintergrund (wenn ein anderer Nutzer aktiv ist) und im Vordergrund (auch bekannt als aktuellen Nutzer). Um bei Bedarf Ressourcen zu sparen, verwaltet das System das Herunterfahren der Nutzer. Es ist immer ein Nutzer im Vordergrund erforderlich.
Ab Android 10 können unter Android Automotive standardmäßig nur drei Nutzer gleichzeitig ausgeführt werden (config_multiuserMaxRunningUsers
). Daher können neben dem headless-Systemnutzer (Nutzer 0) nur ein Nutzer im Vordergrund und ein Nutzer im Hintergrund konfiguriert werden.
- Normalerweise wird der aktuelle Nutzer im Vordergrund und der headless Systemnutzer (Nutzer 0) im Hintergrund ausgeführt. Wenn ein Nutzer in den Hintergrund verschoben wird, wird er angehalten, aber nicht gesperrt. Wenn der Maximalwert
erfüllt ist, wird der zuletzt verwendete Nutzer
im Hintergrund beendet und
gesperrt (
config_multiuserDelayUserDataLocking
). - Gestoppte und entsperrte Hintergrundnutzer werden während des Garagentormodus neu gestartet.
Gastnutzer sind temporär und können nur im Vordergrund ausgeführt werden. Wenn eine Person den Gastzugriff beendet, wird der Gastnutzer beendet und kann nicht mehr im Hintergrund ausgeführt werden.
Hintergrundprozesse von Nutzern
Wenn ein Nutzer vom Vordergrund zum Hintergrund wechselt (und umgekehrt), werden alle Aktivitäten und Dienste im Vordergrund für diesen Nutzer beendet werden. Dadurch werden alle Dienste angehalten, die von diesen Diensten gebunden sind. Ein Teil der Aufräumarbeiten bleibt jedoch erhalten. Dauerhaft Dienste von eigenen und OEM-System-Apps laufen weiter, der Nutzer (jetzt im Hintergrund) nicht aufgehalten wird.
Dauerhafte Dienste sind problematischer, da sie im OOM-Verwaltungssystem (Out of Memory) von Android in einem Bucket mit hoher Priorität enthalten sind. Auch wenn Apps für den Nutzer im Vordergrund mehr Arbeitsspeicher benötigen, werden diese persistenten Hintergrundprozesse nicht beendet. Deshalb kann der Nutzer Die persistenten Dienste besorgen dauerhaft Speicherkapazitäten und Diese Erinnerung wird nur zurückgegeben, wenn eine Person das Auto und den Hintergrund neu startet. dass Nutzer gestoppt werden.
Nutzerstatus
Ein Nutzer befindet sich im Status „Angehalten“ (STATE_SHUTDOWN
), bis er gestartet wird. Wenn Anmeldedaten für einen Nutzer (z. B. eine PIN) festgelegt sind, wird der Android-Nutzer ausgeführt, bleibt aber gesperrt (STATE_RUNNING_LOCKED
), bis eine Person den Sperrbildschirm für diesen Nutzer entsperrt. Wenn der Nutzer entsperrt ist, wird sein mit Anmeldedaten verschlüsselter Speicher entschlüsselt.
und die Datenverzeichnisse für diesen Nutzer werden verfügbar. Für einen typischen Nutzerwechsel
Der Hintergrundnutzer wird nicht angehalten und bleibt ausgeführt und entsperrt.
(STATE_RUNNING_UNLOCKED
), sobald das Gerät entsperrt wurde.
Garagenmodus, JobScheduler und App-Updates für Nutzer
Für Automobil-Apps wird zum Aktualisieren von Daten die Verwendung von JobScheduler
empfohlen.
um Jobs zu planen, die ausgeführt werden, wenn sich ein Gerät im inaktiven Zustand befindet, über den Garage-Modus (z. B. Download von
App-Updates von Google Play). Nachdem Apps Jobs bei JobScheduler
und JobSchedulerService
registriert haben, werden die Jobs nach Möglichkeit ausgeführt.
CarService sendet ein Signal an JobSchedulerService
, um auszuführende Jobs auszulösen
wenn das Automotive-Gerät inaktiv ist
über den Garagenmodus. Damit JobSchedulerService
Jobs für einen Nutzer im Hintergrund ausführen kann, muss dieser Nutzer den Status STATE_RUNNING_UNLOCKED
haben. Jobs, die in JobSchedulerService
anstehen, werden beibehalten und überstehen mehrere Ein-/Ausschaltzyklen.
JobScheduler
kann keine Jobs für einen bestimmten Nutzer ausführen, wenn dieser Nutzer noch nie
nach dem Aus- und wieder entriegelt werden. Wenn der Nutzer entsperrt ist und er
STATE_RUNNING_UNLOCKED
können Jobs für den Nutzer ausgeführt werden.