Achtergrondprocessen bevriezen zonder root (Android 7.0+)

Deze tutorial laat zien hoe je de achtergrondprocessen van een app op Android 7.0 en 7.1 Nougat zonder root kunt bevriezen met behulp van een verborgen ADB-opdracht.

Android is altijd beschouwd als het "krachtigere" mobiele platform in vergelijking met iOS vanwege de grote vrijheid die de applicaties van derden hebben. Hierdoor kan er veel automatisering plaatsvinden, simpelweg omdat Android-applicaties meer taken kunnen uitvoeren terwijl ze op de achtergrond draaien. Dit heeft echter een keerzijde, omdat het de deur opent voor mogelijk meer batterijverbruik dankzij achtergrondprocessen die op het apparaat worden uitgevoerd.

Het is één ding om te weten dat u uw telefoon laadt met applicaties die op de achtergrond draaien, aangezien u bereid bent een deel van de levensduur van uw batterij op te offeren voor de voordelen die ze met zich meebrengen. Het is een ander verhaal als je alleen maar traditionele applicaties downloadt die niet geoptimaliseerd zijn en die taken op de achtergrond uitvoeren wanneer je dat niet wilt of zelfs nodig hebt. Google heeft eraan gewerkt dit op te lossen door steeds meer beperkingen op te leggen aan wat applicaties kunnen doen de achtergrond, en de release van Android O brengt de meeste achtergrondproces-/ontvangerbeperkingen met zich mee ver.

De overgrote meerderheid van de gebruikers zal Android O echter nog vele maanden niet op hun apparaten zien (of helemaal niet). Maar als je aan het rennen bent Android 7.0 of Android 7.1, is er een eenvoudige truc die je handmatig kunt doen voorkomen dat een applicatie ooit op de achtergrond draait - en het vereist geen root of een applicatie van derden. Dit is krachtiger dan wat Greenify of apps als Brevent bieden, omdat deze apps zonder root-toegang vrij beperkt zijn in wat ze kunnen doen. Maar met deze truc kan het nu wel blokkeer apps zoals Facebook of Hangouts zodat ze nooit op de achtergrond draaien - ze werken alleen als ze actief worden gebruikt!


Beperk achtergrondprocessen zelfstudie

Vereisten:

  • Android Nougat-apparaat (7.0 of 7.1).
  1. Installeer de USB-stuurprogramma's voor uw specifieke apparaat (OEM) (Google biedt er een lijst van). universele USB-stuurprogramma's hier).
  2. Download de ADB binair voor uw specifieke besturingssysteem (ramen, Mac, Linux). Deze links verwijzen altijd naar de nieuwste versie van het binaire bestand.
  3. Pak de inhoud van het ZIP-bestand uit in een gemakkelijk toegankelijke map op uw pc.
  4. Ga naar de app Instellingen op uw telefoon en tik op de optie Over de telefoon.
  5. Zoek het buildnummer en tik er zeven keer op om de ontwikkelaarsmodus in te schakelen.
  6. Ga terug naar het hoofdmenu Instellingen en voer Ontwikkelaaropties in zodat u de USB-foutopsporingsmodus kunt inschakelen.
  7. Sluit uw telefoon aan op de computer en wijzig deze van de modus 'Alleen opladen' in de modus 'Bestandsoverdracht (MTP)'. Dit is niet op elk apparaat nodig, maar veel apparaten vereisen dit als veiligheidsmaatregel voordat ADB kan werken.
  8. Ga terug naar de pc en blader naar de map waar u het ADB-binaire bestand hebt uitgepakt.
  9. Start een opdrachtprompt of terminal in uw ADB-map. Voor Windows-gebruikers kan dit worden gedaan door Shift ingedrukt te houden en met de rechtermuisknop te klikken en vervolgens de optie "open opdrachtprompt hier" te selecteren. (Sommige Windows 10-gebruikers zien mogelijk dat de opdrachtprompt wordt vervangen door PowerShell.)
  10. Zodra u zich in de opdrachtprompt- of terminalomgeving bevindt, voert u de volgende opdracht in: adb devices
  11. Hiermee wordt de ADB-daemon gestart als deze nog niet is gestart. Wacht gewoon tot deze is voltooid. Als dit de eerste keer is dat u ADB gebruikt, ziet u ook een prompt op uw telefoon waarin u wordt gevraagd toestemming te geven voor een verbinding met de computer. Geef hier toegang tot USB-foutopsporing.
  12. Als u nu de opdracht adb devices vanaf stap 10 opnieuw uitvoert, zal de opdrachtprompt/terminal het serienummer van uw apparaat afdrukken. Als dat zo is, ben je klaar om verder te gaan. Als dit niet het geval is, zijn de USB-stuurprogramma's waarschijnlijk niet correct geïnstalleerd.
  13. U zult dan de pakketnaam moeten vinden voor de toepassing waarvan u achtergrondprocessen wilt bevriezen. U kunt dit doen door de App-inspecteur applicatie op uw telefoon.
  14. Ga terug naar de opdrachtprompt en voer de volgende opdracht in: adb shell
  15. Voer nu de volgende opdracht uit om de achtergrondprocessen van een toepassing vrij te maken: cmd appops set RUN_IN_BACKGROUND ignore
  16. Als u ooit de wijziging die u zojuist hebt aangebracht wilt ongedaan maken en de achtergrondprocessen van een app weer wilt toestaan, voert u deze opdracht in: cmd appops set RUN_IN_BACKGROUND allow
  17. U weet dat het werkt als u teruggaat naar een andere ADB-shellprompt en u geen foutmelding krijgt.

Uitleg

Hoe deze opdracht precies werkt, is dat u hiermee een verborgen toestemming kunt beperken die normaal gesproken niet toegankelijk is voor de gebruiker in de app Instellingen. Deze toestemming wordt de RUN_IN_BACKGROUND toestemming genoemd en de enige manier waarop deze kan worden gewijzigd is door "cmd" te gebruiken appops", de opdrachtregelinterface voor "App Ops", het gebruikersgerichte toestemmingsbeheersysteem van Google.

Google heeft deze verborgen ADB-opdracht toegevoegd waarmee u kunt voorkomen dat elke toepassing impliciete uitzendintenties ontvangt (bijv. de app ontwaakt op de achtergrond) en voorkomt ook dat die applicaties achtergrondservices plannen zonder JobScheduler te gebruiken (bijv. de app wordt op een ongelegen tijdstip wakker, waardoor uw batterij leegraakt). Deze opdracht is eigenlijk alleen bedoeld voor gebruik door ontwikkelaars die willen simuleren hoe hun app zou presteren onder omstandigheden met weinig geheugen, maar gelukkig kunnen we het voor eigen gebruik gebruiken.

Door de afhankelijkheden van de achtergrondservices van een app en manifest-geregistreerde impliciete uitzendingsontvangers te verwijderen, kunnen ontwikkelaars hun applicatie optimaliseren zodat deze beter werkt op apparaten met weinig geheugen. Google zegt dat applicaties die zijn geoptimaliseerd voor dit soort apparaten, of apparaten met weinig geheugen, zowel de prestaties als de gebruikerservaring kunnen verbeteren. Dat maakte het bedrijf bekend tijdens Google I/O dit jaar een aangepaste versie van Android genaamd Android Go, dat zal worden gebruikt voor smartphones met zeer weinig geheugen, dus we nemen aan dat deze opdracht nuttig zou zijn voor ontwikkelaars die zich op dat platform richten.

In ieder geval kan deze opdracht redelijk nuttig zijn voor de gemiddelde gebruiker, maar wees voorzichtig met wat u hier beperkt. Apps zoals Hangouts of Facebook stoppen volledig met synchroniseren op de achtergrond totdat je ze opent, en als dit is waar je naar streeft, dan weet ik zeker dat je het niet erg vindt. Maar wees niet verbaasd als uw e-mails of berichten vertraging oplopen als u deze opdracht uitvoert in een app die afhankelijk is van achtergrondontvangers.