Wie bleibt WhatsApp im Hintergrund, ohne geschlossen zu werden?

Android beendet normalerweise Hintergrundprozesse, wenn sie keine dauerhafte Benachrichtigung haben. Warum werden Apps wie WhatsApp und Facebook nicht gelöscht?

Weil sie einen Dienst betreiben, würde ich sagen :) Ich verwende weder WA noch FB, daher kann ich hier nicht sicher sein: Um ihre Priorität zu erhöhen, können Apps einen Dienst registrieren und ein Symbol in der Benachrichtigungsleiste anzeigen lassen, also das OOM Killer hält sie für "wichtiger" und "tötet stattdessen andere Sachen", wenn möglich.
Ich denke, ein Symbol in der Taskleiste zu haben, ist irrelevant (mein WA hat sowieso keins). Solange der Dienst läuft wie bei einem "Dienstprozess" oder höherer Priorität.

Antworten (1)

Android beendet normalerweise Hintergrundprozesse, wenn sie keine dauerhafte Benachrichtigung haben.

Nun, meistens ist dies der Fall, aber Android OutOfMemory Killer (die Komponente in Android, die für das Beenden von Prozessen verantwortlich ist) verwendet ziemlich komplexe Logik und Kriterien, um Apps und Prozesse zu beenden, die diese Apps hosten.

In Android läuft jede Anwendung in einem Linux-Prozess. In jedem Linux-Prozess läuft eine virtuelle Maschine (Dalvik Virtual Machine oder ART Virtual Machine). Der Speicher, den ein Prozess beanspruchen kann, ist begrenzt und ist für verschiedene Geräte und auch für Telefone und Tablets unterschiedlich.

Wenn Android wenig Speicherplatz hat (möglicherweise, weil so viele Apps gleichzeitig auf einem Gerät ausgeführt werden), kommt der OutOfMemory-Killer ins Spiel und beginnt, Prozesse von Apps zu beenden, die sich zuerst im Hintergrund befinden .

Jetzt verwenden Apps wie WhatsApp, Facebook sogenannte Service- und Push-Benachrichtigungsmechanismen. Der Dienst ermöglicht es der App, einen im Hintergrund ausgeführten Code auszuführen, und selbst wenn die App von OOM Killer getötet wird, kann der Dienst von Android erneut gestartet werden, wenn genügend Speicher verfügbar ist, um ihn auszuführen.

Warum werden Apps wie WhatsApp und Facebook nicht getötet?

Dies ist nicht wahr, da Android Apps basierend auf ihrem Status (z. B. Vorder- oder Hintergrund) beenden kann. Es ist nur so, dass die Apps und ihre Komponenten (z. B. Dienste) neu gestartet werden, wenn sie Push-Benachrichtigungen erhalten, damit der Benutzer mit der App interagieren kann.

Wenn also eine Push-Benachrichtigung empfangen wird (d. h. eine WhatsApp-Nachricht), kann Android die Komponente der getöteten App (in diesem Fall WhatsApp) neu starten.

Auf diese Weise verbirgt Android die komplexen Details der Speicherverwaltung und der Prozessverwaltung vor dem Benutzer und stellt sicher, dass der Benutzer problemlos mit einer App interagieren kann.

Gibt es eine Möglichkeit, WhatsApp gegenüber Facebook zu priorisieren, z. B. mit Tasker, um zuerst etwas zu töten, um zu verhindern, dass der OOMK eine andere App tötet? Ich höre, dass Task-Manager schlecht sind, aber diese Art der Umgehung erscheint wünschenswert?
Diese Antwort hat eine schöne Erklärung! Haben Sie offizielle Quellen, die Sie verlinken können, um die Logik zu bestätigen?
Ich habe diese Antwort basierend auf meiner Erfahrung als Android-Entwickler geschrieben - es gibt zahlreiche Dokumentationen, um zu untersuchen, wie OOM Killer funktioniert, und eine einfache Google-Suche sollte helfen, damit umzugehen. Ich habe diese Links nicht in meinen Beitrag eingefügt, um es für Laien und nicht für Entwickler einfach und verständlich zu halten.