Hintergrundprozesse ohne Root einfrieren (Android 7.0+)

Dieses Tutorial zeigt Ihnen, wie Sie die Hintergrundprozesse einer App unter Android 7.0 und 7.1 Nougat ohne Root mithilfe eines versteckten ADB-Befehls einfrieren.

Android galt im Vergleich zu iOS schon immer als die „leistungsstärkere“ mobile Plattform, da die Anwendungen von Drittanbietern so viele Freiheiten bieten. Dies ermöglicht einen hohen Automatisierungsgrad, da Android-Anwendungen einfach mehr Aufgaben erledigen können, während sie im Hintergrund ausgeführt werden. Dies bringt jedoch einen Nachteil mit sich, da es aufgrund der auf dem Gerät ausgeführten Hintergrundprozesse zu einer potenziell höheren Batterieentladung führen kann.

Es ist eine Sache zu wissen, dass Sie Ihr Telefon mit Anwendungen beladen, die im Hintergrund ausgeführt werden, da Sie bereit sind, einen Teil Ihrer Akkulaufzeit für die damit verbundenen Vorteile zu opfern. Anders verhält es sich, wenn Sie lediglich herkömmliche Anwendungen herunterladen, die nicht optimiert sind und Aufgaben im Hintergrund ausführen, wenn Sie dies nicht möchten oder gar nicht benötigen. Google hat daran gearbeitet, dieses Problem zu beheben, indem es die Möglichkeiten von Anwendungen immer stärker einschränkt der Hintergrund, und die Veröffentlichung von Android O bringt die meisten Hintergrundprozess-/Empfängereinschränkungen mit sich weit.

Allerdings wird die überwiegende Mehrheit der Nutzer Android O in vielen Monaten (wenn überhaupt) nicht auf ihren Geräten sehen. Aber wenn du rennst Android 7.0 oder Android 7.1gibt es einen einfachen Trick, den Sie manuell ausführen können Verhindern Sie, dass eine Anwendung jemals im Hintergrund ausgeführt wird - und es erfordert kein Root oder eine Drittanbieteranwendung. Dies ist leistungsfähiger als das, was Greenify oder Apps wie Brevent bieten, da diese Apps ohne Root-Zugriff in ihren Möglichkeiten ziemlich eingeschränkt sind. Aber mit diesem Trick ist das jetzt möglich Blockieren Sie Apps wie Facebook oder Hangouts dass sie jemals im Hintergrund laufen – sie funktionieren nur, wenn sie aktiv genutzt werden!


Tutorial zum Einschränken von Hintergrundprozessen

Anforderungen:

  • Android Nougat (7.0 oder 7.1)-Gerät
  1. Installieren Sie die USB-Treiber für Ihren jeweiligen Geräte-OEM (Google stellt eine Liste einiger davon bereit). Universelle USB-Treiber finden Sie hier).
  2. Laden Sie die herunter ADB-Binärdatei für Ihr spezielles Betriebssystem (Windows, Mac, Linux). Diese Links verweisen immer auf die neueste Version der Binärdatei.
  3. Extrahieren Sie den Inhalt der ZIP-Datei in einen leicht zugänglichen Ordner auf Ihrem PC.
  4. Gehen Sie auf Ihrem Telefon zur App „Einstellungen“ und tippen Sie auf die Option „Über das Telefon“.
  5. Suchen Sie die Build-Nummer und tippen Sie sieben Mal darauf, um den Entwicklermodus zu aktivieren.
  6. Gehen Sie zurück zum Hauptmenü „Einstellungen“ und geben Sie „Entwickleroptionen“ ein, damit Sie den USB-Debugging-Modus aktivieren können.
  7. Schließen Sie Ihr Telefon an den Computer an und wechseln Sie vom Modus „Nur Laden“ in den Modus „Dateiübertragung (MTP)“. Dies ist nicht auf jedem Gerät erforderlich, aber viele Geräte erfordern dies als Sicherheitsmaßnahme, bevor ADB funktionieren kann.
  8. Gehen Sie zurück zum PC und navigieren Sie zu dem Verzeichnis, in das Sie die ADB-Binärdatei extrahiert haben.
  9. Starten Sie eine Eingabeaufforderung oder ein Terminal in Ihrem ADB-Verzeichnis. Für Windows-Benutzer können Sie dies tun, indem Sie die Umschalttaste gedrückt halten und mit der rechten Maustaste klicken und dann die Option „Eingabeaufforderung hier öffnen“ auswählen. (Bei einigen Windows 10-Benutzern wird „Eingabeaufforderung“ möglicherweise durch „PowerShell“ ersetzt.)
  10. Geben Sie in der Eingabeaufforderungs- oder Terminalumgebung den folgenden Befehl ein: adb devices
  11. Dadurch wird der ADB-Daemon gestartet, falls er noch nicht gestartet wurde. Warten Sie einfach, bis er fertig ist. Wenn Sie ADB zum ersten Mal ausführen, wird auf Ihrem Telefon außerdem eine Eingabeaufforderung angezeigt, in der Sie aufgefordert werden, eine Verbindung mit dem Computer zu autorisieren. Erlauben Sie hier den USB-Debugging-Zugriff.
  12. Wenn Sie nun den Befehl „adb devices“ aus Schritt 10 erneut ausführen, gibt die Eingabeaufforderung/das Terminal die Seriennummer Ihres Geräts aus. Wenn ja, dann sind Sie bereit, weiterzumachen. Wenn nicht, sind die USB-Treiber wahrscheinlich nicht ordnungsgemäß installiert.
  13. Anschließend müssen Sie den Paketnamen für die Anwendung finden, deren Hintergrundprozesse eingefroren werden sollen. Sie können dies tun, indem Sie das installieren App-Inspektor Anwendung auf Ihrem Telefon.
  14. Gehen Sie zurück zur Eingabeaufforderung und geben Sie den folgenden Befehl ein: adb shell
  15. Führen Sie nun den folgenden Befehl aus, um die Hintergrundprozesse einer Anwendung freizugeben: cmd appops set RUN_IN_BACKGROUND ignore
  16. Wenn Sie die gerade vorgenommene Änderung jemals rückgängig machen und die Hintergrundprozesse einer App wieder zulassen möchten, geben Sie diesen Befehl ein: cmd appops set RUN_IN_BACKGROUND allow
  17. Sie wissen, dass es funktioniert, wenn Sie zu einer anderen ADB-Shell-Eingabeaufforderung zurückkehren und keine Fehlermeldung erhalten.

Erläuterung

Die genaue Funktionsweise dieses Befehls besteht darin, dass Sie damit eine versteckte Berechtigung einschränken können, auf die der Benutzer normalerweise nicht in der App „Einstellungen“ zugreifen kann. Diese Berechtigung wird als RUN_IN_BACKGROUND-Berechtigung bezeichnet und kann nur durch die Verwendung von „cmd“ geändert werden appops“, die Befehlszeilenschnittstelle für „App Ops“, das benutzerorientierte Berechtigungsverwaltungssystem von Google.

Google hat diesen versteckten ADB-Befehl hinzugefügt, der es Ihnen ermöglicht, jede Anwendung daran zu hindern, implizite Broadcast-Intents (z. B. dass die App im Hintergrund aktiviert wird) und außerdem verhindern, dass diese Anwendungen Hintergrunddienste planen, ohne JobScheduler zu verwenden (d. h. die App wacht zu einem ungünstigen Zeitpunkt auf und entlädt Ihren Akku). Dieser Befehl ist eigentlich nur für Entwickler gedacht, die simulieren möchten, wie sich ihre App unter Bedingungen mit wenig Arbeitsspeicher verhält, aber zum Glück können wir ihn auch für uns selbst verwenden.

Durch das Entfernen von Abhängigkeiten von den Hintergrunddiensten einer App und im Manifest registrierten impliziten Broadcast-Empfängern können Entwickler ihre Anwendung so optimieren, dass sie auf Geräten mit wenig Arbeitsspeicher besser läuft. Laut Google können Anwendungen, die für diese Art von Geräten optimiert sind oder über wenig Arbeitsspeicher verfügen, sowohl die Leistung als auch das Benutzererlebnis verbessern. Das gab das Unternehmen auf der diesjährigen Google I/O bekannt eine modifizierte Version von Android namens Android Go, der für Smartphones mit sehr wenig Speicher verwendet wird, daher gehen wir davon aus, dass dieser Befehl für Entwickler nützlich wäre, die diese Plattform anstreben.

Auf jeden Fall kann dieser Befehl für den durchschnittlichen Benutzer ziemlich nützlich sein, aber seien Sie vorsichtig, was Sie hier einschränken. Apps wie Hangouts oder Facebook stoppen die Synchronisierung im Hintergrund vollständig, bis Sie sie öffnen. Wenn Sie dies anstreben, stört es Sie sicher nicht. Seien Sie jedoch nicht überrascht, wenn Ihre E-Mails oder Nachrichten verzögert werden, wenn Sie diesen Befehl in einer App ausführen, die auf Hintergrundempfänger angewiesen ist.