Zamroź procesy w tle bez rootowania (Android 7.0 lub nowszy)

W tym samouczku pokazano, jak zamrozić procesy działające w tle dowolnej aplikacji w systemie Android 7.0 i 7.1 Nougat bez rootowania za pomocą ukrytego polecenia ADB.

Android zawsze był uważany za „potężniejszą” platformę mobilną w porównaniu z iOS ze względu na dużą swobodę, jaką zapewniają aplikacje innych firm. Umożliwia to znaczną automatyzację, ponieważ aplikacje na Androida mogą wykonywać więcej zadań, gdy działają w tle. Ma to jednak wady, ponieważ otwiera drzwi do potencjalnie większego zużycia baterii ze względu na procesy działające w tle na urządzeniu.

Jedną rzeczą jest wiedzieć, że ładujesz telefon aplikacjami działającymi w tle, ponieważ chcesz poświęcić część czasu pracy baterii na rzecz korzyści, jakie one przynoszą. Co innego, jeśli pobierasz tradycyjne aplikacje, które nie są zoptymalizowane i wykonują zadania w tle, kiedy tego nie chcesz lub nawet nie potrzebujesz. Google pracuje nad rozwiązaniem tego problemu, nakładając coraz więcej ograniczeń na możliwości aplikacji tło, a wydanie Androida O wprowadza najwięcej ograniczeń procesów/odbiorników w tle daleko.

Jednak zdecydowana większość użytkowników nie zobaczy Androida O na swoich urządzeniach przez wiele miesięcy (jeśli w ogóle). Ale jeśli biegasz Androida 7.0 lub Androida 7.1, istnieje prosta sztuczka, którą możesz wykonać ręcznie uniemożliwić aplikacji działanie w tle - i to nie wymaga roota lub aplikacji strony trzeciej. Jest to potężniejsze niż to, co oferuje Greenify lub aplikacje takie jak Brevent, ponieważ bez dostępu do roota możliwości tych aplikacji są dość ograniczone. Ale dzięki tej sztuczce teraz jest to możliwe blokować aplikacje takie jak Facebook czy Hangouts od ciągłego działania w tle - będą działać tylko wtedy, gdy będą aktywnie używane!


Samouczek dotyczący ograniczania procesów w tle

Wymagania:

  • Urządzenie z Androidem Nougat (7.0 lub 7.1).
  1. Zainstaluj sterowniki USB dla konkretnego OEM urządzenia (Google udostępnia listę niektórych uniwersalne sterowniki USB tutaj).
  2. Pobierz Binarny ADB dla konkretnego systemu operacyjnego (Okna, Prochowiec, Linuksa). Linki te zawsze będą wskazywały najnowszą wersję pliku binarnego.
  3. Wyodrębnij zawartość pliku ZIP do łatwo dostępnego folderu na swoim komputerze.
  4. Przejdź do aplikacji Ustawienia na swoim telefonie i dotknij opcji Informacje o telefonie.
  5. Znajdź numer kompilacji i dotknij go 7 razy, aby włączyć tryb programisty.
  6. Wróć do głównego menu Ustawienia i wejdź do Opcji programisty, aby włączyć tryb debugowania USB.
  7. Podłącz telefon do komputera i zmień go z trybu „tylko ładowanie” na tryb „transferu plików (MTP)”. Nie jest to konieczne na każdym urządzeniu, ale wiele urządzeń wymaga tego jako środka bezpieczeństwa, zanim ADB będzie działać.
  8. Wróć do komputera i przejdź do katalogu, w którym wyodrębniłeś plik binarny ADB.
  9. Uruchom wiersz poleceń lub terminal w katalogu ADB. W przypadku użytkowników systemu Windows można to zrobić, przytrzymując klawisz Shift i klikając prawym przyciskiem myszy, a następnie wybierając opcję „otwórz tutaj wiersz poleceń”. (Niektórzy użytkownicy systemu Windows 10 mogą zobaczyć „wiersz poleceń” zastąpiony przez „PowerShell”).
  10. Gdy znajdziesz się w wierszu poleceń lub środowisku terminala, wprowadź następujące polecenie: adb devices
  11. Spowoduje to uruchomienie demona ADB, jeśli nie został jeszcze uruchomiony, po prostu poczekaj na zakończenie. Jeśli po raz pierwszy uruchamiasz ADB, na telefonie pojawi się również monit z prośbą o autoryzację połączenia z komputerem. Zezwól tutaj na dostęp do debugowania USB.
  12. Teraz, jeśli ponownie uruchomisz polecenie adb devices z kroku 10, wiersz poleceń/terminal wydrukuje numer seryjny twojego urządzenia. Jeśli tak, to jesteś gotowy, aby przejść dalej. Jeśli nie, oznacza to, że sterowniki USB prawdopodobnie nie zostały poprawnie zainstalowane.
  13. Następnie będziesz musiał znaleźć nazwę pakietu dla aplikacji, dla której chcesz zamrozić procesy w tle. Można to zrobić instalując plik Inspektor aplikacji aplikację na swoim telefonie.
  14. Wróć do wiersza poleceń i wprowadź następujące polecenie: adb shell
  15. Teraz wykonaj następujące polecenie, aby zwolnić procesy aplikacji w tle: cmd appops set RUN_IN_BACKGROUND ignore
  16. Jeśli kiedykolwiek będziesz chciał cofnąć właśnie dokonaną zmianę i ponownie zezwolić aplikacji na procesy w tle, wpisz to polecenie: cmd appops set RUN_IN_BACKGROUND allow
  17. Będziesz wiedział, że to działa, jeśli przeniesie Cię z powrotem do innego monitu powłoki ADB i nie wyświetli komunikatu o błędzie.

Wyjaśnienie

To polecenie działa dokładnie tak, że pozwala ograniczyć ukryte uprawnienia, które zwykle nie są dostępne dla użytkownika w aplikacji Ustawienia. To uprawnienie nazywa się uprawnieniem RUN_IN_BACKGROUND i jedynym sposobem, w jaki można je zmodyfikować, jest użycie „cmd appops”, który jest interfejsem wiersza poleceń dla „App Ops” – systemu zarządzania uprawnieniami Google skierowanego do użytkownika.

Firma Google dodała to ukryte polecenie ADB, które umożliwia ograniczenie dowolnej aplikacji przed otrzymywaniem niejawnych zamiarów transmisji (tj. aplikacja budzi się w tle), a także uniemożliwiają tym aplikacjom planowanie usług w tle bez korzystania z JobScheduler (tj. aplikacja budzi się w nieodpowiednim momencie, co powoduje wyczerpanie baterii). To polecenie jest właściwie przeznaczone do użytku tylko przez programistów, którzy chcą symulować działanie swojej aplikacji w warunkach małej ilości pamięci, ale na szczęście możemy wykorzystać to na własny użytek.

Usuwając zależności od usług działających w tle aplikacji i zarejestrowanych w manifeście niejawnych odbiorników emisji, programiści mogą zoptymalizować swoją aplikację, aby działała lepiej na urządzeniach o małej ilości pamięci. Google twierdzi, że aplikacje zoptymalizowane dla tego typu urządzeń lub tych, które mają mało pamięci, mogą poprawić zarówno wydajność, jak i wygodę użytkownika. Firma ogłosiła to na tegorocznej konferencji Google I/O zmodyfikowana wersja Androida o nazwie Android Go, które będzie używane w smartfonach z bardzo małą ilością pamięci, dlatego zakładamy, że to polecenie będzie przydatne dla programistów zajmujących się tą platformą.

W każdym razie to polecenie może być dość przydatne dla przeciętnego użytkownika, ale uważaj, co tutaj ograniczasz. Aplikacje takie jak Hangouts czy Facebook całkowicie przestaną synchronizować się w tle, dopóki ich nie otworzysz, a jeśli to jest to, do czego dążysz, jestem pewien, że nie masz nic przeciwko. Ale nie zdziw się, jeśli Twoje e-maile lub wiadomości zostaną opóźnione, jeśli uruchomisz to polecenie w aplikacji zależnej od odbiorników działających w tle.