Android beendet normalerweise Hintergrundprozesse, wenn keine permanente Benachrichtigung vorliegt. Warum werden Apps wie WhatsApp und Facebook nicht getötet?
Android beendet normalerweise Hintergrundprozesse, wenn keine permanente Benachrichtigung vorliegt. Warum werden Apps wie WhatsApp und Facebook nicht getötet?
Antworten:
Android beendet normalerweise Hintergrundprozesse, wenn keine permanente Benachrichtigung vorliegt.
Meistens ist dies der Fall, aber Android OutOfMemory Killer (die Komponente in Android, die für das Beenden von Prozessen verantwortlich ist) verwendet eine ziemlich komplexe Logik und ein ziemlich komplexes Kriterium, um Apps und Prozesse zu beenden , die diese Apps hosten.
In Android wird jede Anwendung in einem Linux-Prozess ausgeführt. In jedem Linux-Prozess läuft eine virtuelle Maschine (Dalvik Virtual Machine oder ART Virtual Machine). Der Speicher, den ein Prozess benötigen kann, ist begrenzt. Er ist für verschiedene Geräte unterschiedlich und unterscheidet sich auch für Telefone und Tablets.
Wenn Android nicht genügend Speicherplatz hat (möglicherweise, weil so viele Apps gleichzeitig auf einem Gerät ausgeführt werden), wird der OutOfMemory-Killer angezeigt und beendet Prozesse von Apps, die sich zuerst im Hintergrund befinden .
Jetzt verwenden Apps wie WhatsApp und Facebook sogenannte Service- und Push-Benachrichtigungsmechanismen. Mit dem Dienst kann die App Code im Hintergrund ausführen. Wenn die App von OOM Killer beendet wird, kann der Dienst von Android erneut gestartet werden, wenn genügend Speicher verfügbar ist, um sie auszuführen.
Warum werden Apps wie WhatsApp und Facebook nicht getötet?
Dies ist nicht der Fall, da Android Apps basierend auf ihrem Status (z. B. Vordergrund oder Hintergrund) beenden kann. Es ist nur so, dass die Apps und ihre Komponente (z. B. Service) neu gestartet werden, sobald sie Push-Benachrichtigungen erhalten, damit der Benutzer mit der App interagieren kann.
Wenn also eine Push-Benachrichtigung empfangen wird (dh eine WhatsApp-Nachricht), kann Android die Komponente der getöteten App neu starten (in diesem Fall WhatsApp).
Auf diese Weise verbirgt Android die komplexen Details der Speicherverwaltung und Prozessverwaltung vor dem Benutzer und stellt sicher, dass der Benutzer problemlos mit einer App interagieren kann.