Jak zatrzymać Wakelocks z dowolnej aplikacji na Androida bez rootowania

Czy zdarzyło Ci się kiedyś spać w nocy z całkowicie naładowanym telefonem, aby obudzić się z niskim poziomem naładowania baterii? Nie martw się, stało się nam wszystkim. Nawet w trybie Doze i wszystkich wysiłkach Google na rzecz poprawy żywotności baterii w Androidzie, bezczynność baterii nie jest idealna. Zwłaszcza jeśli masz zainstalowanych wiele aplikacji. Sprawcą jest najprawdopodobniej źle zachowujący się wakelock z aplikacji takich jak Facebook, Messenger, Snapchat. Na szczęście możesz łatwo zatrzymać te wakelocks za pomocą prostych poleceń powłoki. I nawet do tego nie potrzebujesz roota! Dzisiaj pokażemy Ci, jak zatrzymać wakelocks z dowolnej aplikacji na Androida bez korzystania z roota. Można to zrobić na każdym telefonie z Androidem, o ile masz ADB.


Zatrzymaj Wakelocks z dowolnej aplikacji na Androida

Samouczek wideo z naszego kanału YouTube na wypadek, gdybyś wolał pomoc wizualną

Zanim zaczniesz od czegokolwiek, musisz skonfigurować ADB zarówno na telefonie, jak i na komputerze. Jeśli jeszcze tego nie zrobiłeś, zapoznaj się z tym samouczkiem, aby skonfigurować się.

Jeśli nie jesteś całkowicie pewien, co powoduje wyczerpanie baterii, użyjemy małego narzędzia o nazwie „Lepsze statystyki baterii”, aby znaleźć winowajcę. Deweloper jest aktywny na naszych forach, więc możesz znaleźć aplikację tutaj. Jeśli jednak chcesz wesprzeć programistę, możesz go również pobrać ze sklepu Google Play, gdzie jest to płatna aplikacja. Zapewnia wiele innych statystyk, takich jak stany procesora, wybudzanie aplikacji i informacje o sieci.

Wymaga rootowania na urządzeniach z Androidem KitKat i nowszymi, jednak dla nierootowanych urządzeń istnieje obejście polecenia ADB. Podłącz urządzenie do komputera za pomocą debugowania USB lub debugowania WiFi. Upewnij się, że jest podłączony za pomocą polecenia:

 adb devices 

Następnie uruchomimy powłokę Androida za pomocą następującego polecenia:

 adb shell 

Następnie nadamy właśnie zainstalowanemu BetterBatteryStats uprawnienie BATTERY_STATS za pomocą:

 pm grant com.asksven.betterbatterystats_xdaedition android.permission.BATTERY_STATS 

Gotowy! Teraz BBS będzie działać na twoim nie uruchomionym urządzeniu.

Uwaga: jeśli kupiłeś Better Battery Stats ze Sklepu Google Play, zmień „com.asksven.betterbatterystats_xdaedition” na po prostu „com.asksven.betterbatterystats” w powyższym poleceniu ADB.

Znalezienie Culprit

W telefonie jest wiele aplikacji, więc nie ma łatwego sposobu, aby z całą pewnością stwierdzić, co zużywa baterię. Dlatego używamy Better Battery Stats, aby znaleźć odpowiedzialnego wakelocka. Po skonfigurowaniu aplikacji naładuj telefon, a następnie odłącz go od zasilania i pozostaw w spokoju z wyłączonym ekranem przez co najmniej 30 minut. To powinno dać aplikacji dużo czasu na zarejestrowanie wszystkiego. W aplikacji wybierz opcję Częściowe Wakelocks i sprawdź, która aplikacja powoduje najwięcej szkód.

W głównym podsumowaniu BBS dotknij „Podsumowanie”, aby zobaczyć wszystkie opcje.

Stuknij w „Częściowe wakelocks”, aby zobaczyć wszystkie wakelocks w swoim urządzeniu.

W naszym przypadku winelock „LagunaServiceHandler” od Snapchata jest winowajcą.

Zatrzymywanie Wakelocka

Teraz, gdy wiemy, co zużywa baterię, możemy temu zapobiec. W naszym przypadku jest to Snapchat. Niezależnie od tego, kto jest twoim winowajcą, koniecznie znajdź nazwę pakietu aplikacji za pomocą Przeglądarki nazw pakietów ze Sklepu Play, ponieważ będziemy go potrzebować do polecenia ADB poniżej.

Ponieważ oczywiście odłączyłeś telefon, aby korzystać z Lepszych statystyk baterii, podłącz go z powrotem do komputera, aby ponownie użyć ADB. Jeszcze raz sprawdź, czy jest prawidłowo podłączony

 adb devices 

I wprowadź powłokę za pomocą:

 adb shell 

Teraz, używając nazwy pakietu aplikacji docelowej, wyślij następujące polecenie:

 cmd appops set com.android.application WAKE_LOCK ignore 

Oczywiście zamienisz „com.android.application” na nazwę pakietu aplikacji. W moim przypadku:

 cmd appops set com.snapchat.android WAKE_LOCK ignore 

Jeśli wykonałeś wszystkie kroki poprawnie, wszystkie żądania wakelocks aplikacji zostaną zignorowane przez system Android. Gratulacje!


Wyjaśnienie

Wakelock, w kategoriach laika, to po prostu sposób, aby aplikacja nie pobudzała procesora / ekranu / innych rzeczy, gdy telefon jest bezczynny, aby wykonać określone zadanie w tle. Niektóre aplikacje potrzebują prawnie blokad wakelocków, aby działać poprawnie, ale problem pojawia się, gdy niektóre aplikacje wielokrotnie blokują wakelocks, utrzymują je przez długi czas bez ich upuszczania lub wykonują nadmierne / niepotrzebne zadania sieciowe i procesorowe, korzystając z tych wakelocków.

Przykład: aplikacje takie jak Snapchat, Facebook, Messenger lub inne aplikacje społecznościowe obejmują źle zachowujące się wakelocks. Ten samouczek to po prostu sposób na powstrzymanie ponownego pojawiania się tych wakelocków bez odinstalowywania aplikacji. Jeśli jednak zauważysz, że aplikacja przestaje działać poprawnie po użyciu tego polecenia ADB, możesz zmienić rzeczy z powrotem do poprzedniego stanu, ponownie uruchamiając polecenie i zmieniając opcję „ignoruj” na „zezwalaj” lub po prostu odinstalowując, a następnie ponownie -instalowanie aplikacji ponownie.