Dowiedz się, dlaczego nie potrzebujesz Task Killerów

📅
📂Porady
⏱️8 min czytania

Jakiś czas temu na blipie wywiązała się mała dyskusja na temat używania Task Killerów – czy to dobrze, kiedy zabijamy procesy, czy może to źle? Doszliśmy do różnych wniosków, a teraz jest dobra okazja, żeby wspomnieć o tym wszystkim – w końcu dowiecie się, czy warto zabijać wszystkie procesy – łącznie z systemowymi.

Czym są task killery?

Spolszczmy może to jako zabijacze procesów – mało po naszemu, ale przynajmniej od razu widać o co chodzi. Programy oznaczone jako zabijacze procesów służą oczywiście do zabijania procesów, które chodzą w tle. Wiadomo o co chodzi – im mniej uruchomionych aplikacji, tym nasza bateria jest wytrzymalsza i tym telefon chodzi szybciej, bo ma więcej wolnego ramu, a żaden proces nie korzysta z procesora. W internecie, na forach związanych z różnymi systemami (nie tylko z Androidem) jest wiele wątków poświęconych temu, czy pojawianie się tego typu programów to dobra rzecz, czy jednak powinniśmy się wstrzymać. Przedstawię moją tezę (którą przedstawiłem także na blipie) i postaram się ją udowodnić – dobrze użyty task killer potrafi zdziałać cuda, jednakże używanie go bez konfiguracji sprawi więcej problemów niż pożytku.

Pierwszym punktem będzie to, jak Android zarządza procesami. Po pierwsze – proces i aplikacja to dwie różne rzeczy i należy to odróżnić. Aplikacja może być w tle włączona bez żadnych procesów związanych z nią – Android po ponownym włączeniu jej od razu wywołuje ją, przez co zauważamy, że program działa faktycznie szybko. Kiedy będziemy mieli coraz mniej wolnej pamięci Android sam zacznie zabijać aplikacje działające w tle zaczynając od tych, które były włączane jakiś czas temu.

Problem użytkowników z RAMem jest inny niż na przykład na Windowsie. Na Androidzie jeśli mamy zajęty cały RAM to paradoksalnie bardzo dobrze. Oznacza to mniej więcej tyle, że jeśli nagle będziemy chcieli wrócić do wcześniej zamkniętej (a tak naprawdę ukrytej) aplikacji – to odpali się ona zaraz po tapnięciu. Problem nie leży więc w ilości RAMu (chociaż jego duża ilość nie jest oczywiście wadą) ale w procesorze. Im więcej mamy procesów w tle, tym bardziej procesor w telefonie jest obciążany i tym wolniej działa telefon.

Aplikacje takie jak Advanced Task Killer – czyli najpopularniejszy zbijacz procesów w Android Markecie korzystają z błędnej definicji uwalniania pamięci. Po włączeniu widać oczywiście listę włączonych aplikacji (nie procesów) i możemy zbić wszystkie, które chcemy. Dodatkowo, możemy wejść w procesy i sprawdzić, które procesy w aplikacjach tak naprawdę działają, ile pamięci zjadają i jak dużo wolnej pamięci pozostało. Jednak dalej wszystko opiera się na tym, żeby uwolnić RAM i aby było go jak najwięcej. Wiemy już po powyższym akapicie, że nie jest do tak do końca dobre myślenie – bo zajęty ram przez aplikacje pozwala na ich szybkie ‘wybudzenie’. My natomiast chcemy nie uwolnienia RAMu, ale zabicia procesów, które rozkradają nam procesor i zjadają kolejne procenty z baterii.

Dlatego zabijanie kolejnych aplikacji, albo mówienie Androidowi, żeby był bardziej agresywny w stosunku do programów, które włączone są w tle nie jest zbyt dobrym pomysłem. Powiem więcej – może to być jedna z gorszych decyzji. Zabijacz procesów przy zabijaniu ich musi oczywiście zużyć trochę procesora (paradoksalnie zabiera nam go więcej, niż jakby go nie było) i baterii, aby usunąć procesy w taki sposób, w jaki normalnie by się tego nie robiło. Dodatkowo zabija procesy i programy, które tak właściwie nic nie robią, nie zabierają baterii ani CPU w zauważalnym stopniu, a ich ponowne uruchomienie, które będzie niezbędne do używania telefonu zabierze więcej baterii i procesora, niż programy miałyby działać w tle cały czas.

Jednakże nie to jest najgorsze, że te procesy zaraz wrócą na swoje miejsce, ale to, że możemy mieć przez ich brak pewne dość poważne problemy. Zabicie procesów może spowodować brak alarmów przy otrzymywaniu wiadomości, niektóre elementu telefonu mogą być niestabilne, inne aplikacje mogą się wyłączać bez żadnych ostrzeżeń. Generalnie rzecz biorąc lepiej pozostawić kwestię procesów działających w tle Androidowi, niż samemu bawić się w to, co wyłączamy (chyba, że jesteśmy bardzo dobrze poinformowani, co i jak działa) – inaczej zabijacze procesów sprawią więcej problemu niż pożytku.

Zastanawiacie się pewno co teraz? Skoro telefon czasem potrafi się nieźle zamulić, a wyłączanie procesów samemu może być złym pomysłem. Wiele wskazuje na to, że chodzi tutaj o aplikacje działające w tle. Wiele osób zauważa poprawę działania telefonu po zabiciu procesów. Jednak nie chodzi tutaj o to, że wszystkie procesy zostały pozabijane, ale o to, że jakiś program, który został napisany w zły sposób został zamknięty, przez co (na przykład) nie łączy się już z internetem, nawet jeśli tego nie potrzebuje. W wielu przypadkach także nie chodzi o to, że coś zostało zamknięte, ale poprawa działania telefonu jest spowodowana efektem placebo. Dlatego zamiast zabijać aplikacje i procesy – znajdź te programy, które powodują problemy – wtedy można w task killerze zignorować resztę programów i procesów, a zabijać tylko te, które powodują problemy, przez co telefon będzie cały czas działał szybko.

Jednakże to dalej jest kwestia sporna. Wielu deweloperów nie spojrzy nawet na wasze raporty z aplikacji, jeśli używacie task killerów. Dlatego jeśli macie jakieś problemy, to najlepiej odinstalować task killera, potem zresetować telefon i sprawdzić, czy problem występuje nadal. Jeśli tak – dopiero wtedy radzę się kontaktować z kimkolwiek.

Doszliśmy więc raczej do wniosku, że używanie task killera jest raczej błędem, chyba, że mamy duże pojęcie o tym co będziemy robić. Zapytacie – co teraz, skoro chcę utrzymywać telefon w dobrym stanie i chcę, żeby działał szybko, a task killer może powodować błędy? Bez paniki, zostawmy procesy Androidowi, a sami zajmiemy się tym, co możemy robić i nie spowodujemy żadnych problemów przy przestawianiu czegokolwiek.

Zacznijmy więc patrzeć na procesy, które działają, chociaż nie powinny, bo zostały zminimalizowane. Przyda się tutaj program Watchdog, który jest task killerem, ale takim, który działa inaczej. Powiadamia on nas o tym, że jakiś proces działa, chociaż nie powinien co jest znakiem, że trzeba pousuwać parę procesów z pamięci. Można oczywiście zrobić coś innego, co także zlikwiduje niepotrzebne procesy, a nie trzeba niczego instalować – można zresetować telefon i efekt będzie taki sam. W ostateczności będzie trzeba usunąć program, który powoduje takie a nie inne konsekwencje.

Gorsze od tego, że trzeba raz na jakiś czas wyłączyć proces jest chyba to, że po wyłączeniu on i tak wraca na swoje miejsce i zaczyna podkradać baterię i procesor. Jeśli odkryjemy więc taką aplikację, która bardzo chętnie podjada nam CPU i skutecznie zmniejsza poziom baterii, to znak, że deweloper się nie popisał. Najlepszą wtedy metodą jest usunięcie aplikacji, dzięki czemu problemy z nią skutecznie się skończą.

Dobrze byłoby także zrootować swoje urządzenie. Może wydawać się to dziwne, ale zrootowanie daje nam dużo możliwości poprawienia wydajności telefonu. Możemy zmienić taktowanie procesora, zainstalować inne niż oryginalny system, który może poprawić szybkość działania telefonu i wydłużyć czas działania na baterii. Dodatkowo może nam się spodobać filozofia wyznawana przez dewelopera i znajdziemy lepszy i bardziej dopasowany do naszych wymagań ROM. Powiecie pewno teraz, że rootowanie wymaga dużego nakładu pracy – otóż nie, większość urządzeń można zrootować metodą one-click, a samo rootowanie trwa parę minut. Dla przykładu zrootowałem znajomej HTC Hero w ciągu dziesięciominutowej przerwy w szkole – więc szybkie rootowanie jest możliwe.