Zmrazit procesy na pozadí bez root (Android 7.0+)

Tento tutoriál vám ukáže, jak zmrazit procesy na pozadí jakékoli aplikace v systému Android 7.0 a 7.1 Nougat bez root pomocí skrytého příkazu ADB.

Android byl vždy považován za „výkonnější“ mobilní platformu ve srovnání s iOS, protože jeho aplikace třetích stran mají volnost. To umožňuje velkou automatizaci jednoduše proto, že aplikace pro Android mohou provádět více úkolů, když běží na pozadí. To však přichází s nevýhodou, protože otevírá dveře pro potenciálně větší vybíjení baterie díky procesům na pozadí běžícím na zařízení.

Jedna věc je vědět, že do telefonu nahráváte aplikace, které běží na pozadí, protože jste ochotni obětovat část výdrže baterie za výhody, které přinášejí. Je to jiný příběh, pokud si pouze stahujete tradiční aplikace, které nejsou optimalizovány a které provádějí úkoly na pozadí, když je nechcete nebo dokonce nepotřebujete. Google pracuje na tom, aby to napravil tím, že stále více omezuje, co mohou aplikace dělat pozadí a vydání systému Android O přináší nejvíce omezení procesů/přijímačů na pozadí daleko.

Drtivá většina uživatelů však Android O na svých zařízeních neuvidí za mnoho měsíců (pokud vůbec). Ale pokud běžíte Android 7.0 nebo Android 7.1, existuje jednoduchý trik, který můžete provést ručně zabránit spuštění aplikace na pozadí - a to nevyžaduje root nebo aplikace třetí strany. To je výkonnější než to, co nabízí Greenify nebo aplikace jako Brevent, protože bez přístupu root jsou tyto aplikace poměrně omezené v tom, co mohou dělat. Ale s tímto trikem teď můžete blokovat aplikace jako Facebook nebo Hangouts aby vůbec neběžely na pozadí – budou fungovat pouze tehdy, když jsou aktivně používány!


Výukový program omezení procesů na pozadí

Požadavky:

  • Zařízení Android Nougat (7.0 nebo 7.1).
  1. Nainstalujte ovladače USB pro vaše konkrétní zařízení OEM (Google poskytuje seznam některých univerzální USB ovladače zde).
  2. Stáhněte si Binární ADB pro váš konkrétní OS (Okna, Mac, Linux). Tyto odkazy budou vždy směřovat na nejnovější verzi binárního souboru.
  3. Extrahujte obsah souboru ZIP do snadno dostupné složky na vašem PC.
  4. Přejděte v telefonu do aplikace Nastavení a klepněte na možnost O telefonu.
  5. Najděte číslo sestavení a klepněte na něj 7krát, abyste aktivovali režim vývojáře.
  6. Vraťte se do hlavní nabídky Nastavení a přejděte do Možnosti vývojáře, abyste mohli povolit režim ladění USB.
  7. Připojte telefon k počítači a změňte jej z režimu „pouze nabíjení“ na režim „přenos souborů (MTP)“. To není nutné na každém zařízení, ale mnoho zařízení to vyžaduje jako bezpečnostní opatření, než umožní ADB pracovat.
  8. Vraťte se do počítače a přejděte do adresáře, kde jste extrahovali binární soubor ADB.
  9. Spusťte příkazový řádek nebo terminál v adresáři ADB. Pro uživatele Windows to lze provést podržením klávesy Shift a kliknutím pravým tlačítkem myši a výběrem možnosti „otevřete příkazový řádek zde“. (Některým uživatelům Windows 10 se může „příkazový řádek“ zobrazit nahrazený výrazem „PowerShell“.)
  10. Jakmile jste v prostředí příkazového řádku nebo terminálu, zadejte následující příkaz: adb devices
  11. Tím se spustí démon ADB, pokud ještě nebyl spuštěn, počkejte, až se dokončí. Pokud používáte ADB poprvé, na telefonu se také zobrazí výzva k autorizaci připojení k počítači. Zde povolte přístup ladění USB.
  12. Pokud nyní znovu spustíte příkaz adb devices z kroku 10, příkazový řádek/terminál vytiskne sériové číslo vašeho zařízení. Pokud ano, pak jste připraveni jít dál. Pokud ne, ovladače USB pravděpodobně nejsou správně nainstalovány.
  13. Poté budete muset najít název balíčku pro aplikaci, kterou chcete zmrazit procesy na pozadí. Můžete to udělat instalací Inspektor aplikací aplikace ve vašem telefonu.
  14. Vraťte se do příkazového řádku a zadejte následující příkaz: adb shell
  15. Nyní spusťte následující příkaz, abyste uvolnili procesy aplikace na pozadí: cmd appops set RUN_IN_BACKGROUND ignore
  16. Pokud někdy budete chtít vrátit právě provedenou změnu a znovu povolit procesy aplikace na pozadí, zadejte tento příkaz: cmd appops set RUN_IN_BACKGROUND allow
  17. Budete vědět, že to funguje, pokud vás vrátí zpět do jiné výzvy prostředí ADB a nezobrazí chybovou zprávu.

Vysvětlení

Jak přesně tento příkaz funguje, je to, že vám umožňuje omezit skryté oprávnění, které normálně není uživateli přístupné v aplikaci Nastavení. Toto oprávnění se nazývá oprávnění RUN_IN_BACKGROUND a jediný způsob, jak jej lze upravit, je použít „cmd appops“, což je rozhraní příkazového řádku pro „App Ops“ – systém správy oprávnění společnosti Google pro uživatele.

Google přidal tento skrytý příkaz ADB, který vám umožňuje omezit jakoukoli aplikaci v přijímání implicitních záměrů vysílání (tj. aplikace se probouzí na pozadí) a také zabrání těmto aplikacím v plánování služeb na pozadí bez použití JobScheduleru (tj. aplikace se probouzí v nevhodnou dobu a vybíjí baterii). Tento příkaz je ve skutečnosti určen pro použití pouze vývojáři, kteří chtějí simulovat, jak by jejich aplikace fungovala za podmínek nízké paměti, ale naštěstí jej můžeme použít pro vlastní potřebu.

Odstraněním závislostí na službách na pozadí aplikace a implicitních přijímačích vysílání registrovaných v manifestu mohou vývojáři optimalizovat své aplikace, aby fungovaly lépe na zařízeních s nízkou pamětí. Google říká, že aplikace optimalizované pro tento typ zařízení nebo ty, které mají nedostatek paměti, mohou zlepšit jak výkon, tak uživatelskou zkušenost. Na letošním Google I/O společnost oznámila upravenou verzi Androidu s názvem Android Go, který bude použit pro smartphony s velmi nízkou pamětí, takže předpokládáme, že tento příkaz by byl užitečný pro vývojáře zaměřené na tuto platformu.

V každém případě může být tento příkaz pro běžného uživatele poměrně užitečný, ale pozor, co zde omezujete. Aplikace jako Hangouts nebo Facebook se úplně přestanou synchronizovat na pozadí, dokud je neotevřete, což pokud je to, na co míříte, pak vám to určitě nevadí. Ale nebuďte překvapeni, když se vaše e-maily nebo zprávy zpozdí, pokud tento příkaz spustíte v aplikaci, která závisí na přijímačích na pozadí.