Czy zamykanie aplikacji mobilnych oszczędza baterię?

Czy wiesz, że zamykanie aplikacji mobilnych nie spowoduje, że oszczędzisz baterię w swoim smartfonie? Sprawdź, dlaczego zamykanie aplikacji jest złym pomysłem.

W tramwaju, w autobusie, w kolejce, na dworcu i przystanku ludzie wpatrują się w swoje smartfony – to już norma. Pewnego dnia zauważyłem, że człowiek stojący obok mnie w tramwaju gorączkowo przesuwa karty aplikacji mobilnych, żeby je pozamykać – trochę mu zeszło, bo miał ich otwartych naprawdę sporo. Choć wiem, dlaczego to robi, ciężko dawać obcemu człowiekowi radę w autobusie, że robi to niepotrzebnie. Na szczęście mogę zamieścić ten wpis i być może on i wiele osób, które tak robią, trafią na niego i przejdą na dobra stronę mocy.

Większość użytkowników iPhone’ów odruchowo zamyka aplikacje – mają przecież świetną funkcjonalność – wystarczy przesunąć palcem. Robią to myśląc, że w ten sposób zaoszczędzą baterię i smartfon przez to dłużej bedzie działał. Niestety takie zachowanie ma wręcz odwrotny wpływ na żywotność baterii iPhone’a.

Użytkownicy nie zdają sobie sprawy, że mobilny system operacyjny doskonale zarządza uruchomionymi aplikacjami w taki sposób, żeby oszczędzić czas pracy baterii na jednym łądowaniu.

Poniżej szybka instrukcja dla tych, którzy nie chcą czytać tego wpisu do końca: 

  • wymuszaj zamknięcie karty aplikacji tylko wtedy, gdy masz problem z działaniem apliakcji mobilnej
  • zrzucanie (zamykanie) aplikacji powoduje pobranie większej energii niż pozostawienie jej otwartej w tle
  • Apple udostępnia programistom odpowiednie narzędzia, które sprawiają, że ich aplikacje sprawnie działają w tle
  • zaufaj systemowi mobilnemu, który efektywnie zarządza uruchomionymi, ale niekatywnymi aplikacjami

Poniżej krótkie wyjaśnienie powyższych rad.

Wyjście vs. całkowite zamknięcie aplikacji mobilnej

Dla jasności, upewnijmy się, że terminologia, którą sie tutaj posługujemy jest dla nas jasna i rozumiemy ją tak samo. Wyjaśnijmy więc co oznacza wyjście z aplikacji, a co całkowite jej zamknięcie (zrzucenie karty, aby nie była otwarta w tle).

  • Wyjście z aplikacji odbywa się poprzez naciśnięcie przycisku Home – taka czynność powoduje, że aplikacja jest „zamknięta”, ale dla użytkownika i tak otwarta w tle oraz widoczna wśród kart aplikacji.
  • Całkowite zamknięcie aplikacji mobilnej (zamknięcie otwartej karty) odbywa się po podwójnym naciśnięciu przycisku Home i przesunięciu palcem w górę odpowiedniej otwartek karty appki (App Switcher).

Mity

Mitem jest oczywiście to, że wymuszanie zamknięcia aplikacji w App Switcher pozwala zaoszczędzić baterię, ponieważ po zamknięciu aplikacje nie działają już w tle. To jest to, w co ludzie mocno wierzą i stało się dla nich już odruchem.

Sprawdź także 5 mitów dotyczących ładowania iPhone’a i iPada.

Rzeczywistość

W rzeczywistości naciśnięcie przycisku Home i wyjście z aplikacji powoduje jej zamknięcie, zatrzymanie użycia procesora oraz wykorzystania pamięci dla wyłączonej w ten sposób aplikacji. W tym czasie aplikacja nie jest aktywna i nie działa w tle (chyba, że pozwolimy na to w Ustawieniach – ale o tym później).

Istnieją wyjątki, o których powiemy, ale należy zapamiętać ogólna zasadę, że naciśnięcie przycisku Home powoduje zatrzymanie aplikacji i wprowadzenie jej w stan zawieszenia, w którym nie wykorzystuje praktycznie żadnej energii i sprzętu. Dzięki temu, że aplikacja uruchomiona jest w tle, system może ją ponownie bardzo szybko otworzyć w stanie w jakim ją opuściliśmy.

Kiedy wymusimy zamknięcie aplikacji, odciążamy oczywiście pamięć używaną przez tę aplikację (choć gdy jest nieaktywna nie ma to wpływu na żywotność baterii). Jednak następnym razem, gdy uruchomisz tę aplikację, system operacyjny zacznie uruchamiać odpowiednie procesy, aby załadować ją do pamięci, używając jeszcze więcej baterii.

Jeśli korzystasz z jakiejś aplikacji często w ciągu dnia, nie ma więc sensu zamykania jej i otwierania bez przerwy, ponieważ w ten sposób zużywasz dwa razy więcej baterii, niż gdybyś zostawił ją „otwartą” w tle.

Oczywiście po uśpieniu aplikacji (wyjściu poprzez naciśnięcie przycisku Home), aplikacja jest w stanie zawieszenia i pozostaje w pamięci, ale ma to praktycznie zerowy wpływ na baterię. Ale istnieją wyjątki od tej zasady, które omówię poniżej!

Pomyśl o tym w ten sposób

Wyobraź sobie, że oglądasz telewizję i chce Ci się pić. Idziesz do kuchni, bierzesz szklankę, napełniasz ją wodą i pijesz do połowy. Następnie wylewasz drugą połowę niedopitej wody do zlewu i wracasz na kanapę. Pięć minut później, znowu jesteś spragniony. Wracasz do kuchni, ponownie napełniasz szklankę i wypijasz tylko połowę wody, a drugą wylewasz.

To nie ma sensu, prawda? Jaki jest sens w nalewaniu pełnej szklanki i wylewaniu połowy, skoro z dużym prawdopodobieństwem za chwilę znowu zechcesz się napić? Czy nie lepiej zostawić szklankę z wodą na blacie i sięgnąć po nią, gdy będziesz chciał się napić, zamiast napełniać ją po raz kolejny? To się nazywa marnowanie zasobów – i tak samo robisz, gdy wymuszasz zamknięcie aplikacji mobilnej. Zwalniając aplikację z pamięci smartfona i za jakiś czas uruchamiając ją ponownie zużywasz baterię!

Jak iOS zachowuje się po zamknięciu aplikacji

W swoim artykule na temat wielozadaniowości i wyobrażeń o systemie iOS, Fraser Spears wyjaśnia, kiedy ​​aplikacje mogą być w jednym z pięciu stanów:

  1. Nie działa: aplikacja nie została uruchomiona lub został całkowicie zamknięta. W tym stanie nie wykorzystuje pamięci RAM i nie korzysta z energii akumulatora.
  2. Nieaktywna: aplikacja jest na pierwszym planie urządzenia mobilnego, ale nie jest używana – tak jak w przypadku zablokowania urządzenia – wyłączenie wyświetlacza. Aplikacja korzysta z pamięci, ale nie zużywa procesora i baterii.
  3. Aktywna: aplikacja jest aktualnie używana. Wykorzystuje procesor i pamięć podręczną, naturalnie zużywa także baterię.
  4. Kontekst (działająca w tle): aplikacja działa w tle (przetwarza kod), ale nie jest wyświetlana na ekranie. Wykorzystuje procesor oraz pamięć, oraz zużywa energię. Na przykład różnego rodzaju odtwarzacze muzyki – choć nie są wyświetlane, odtwarzają muzykę, czasem korzystając dodatkowo z danych internetowych.
  5. Zawieszona (uśpiona): aplikacja nie jest już na ekranie głównym i nie działa w tle. Nie korzysta z procesora, znajduje się w pamięci, ale nie zużywa baterii.

Jeśli czytasz ten artykuł w przeglądarce na smartfonie, to przeglądarka jest aktualnie aktywna – korzysta z procesora i pamięci. Jeśli wyjdziesz z Safari lub Chrome’a po nacisnięciu przycisku Home, to aplikacja zostanie przeniosiana do tła i po chwili stanie się nieaktywna i nie wykorzystuje procesora oraz baterii. W każdej chwili możesz ją wznowić znacznie szybciej i przy mniejszym poborze energii, niż gdyby została całkowicie wyłączona.

Jeśli uruchamiasz grę, która wymaga sporo pamięci RAM, a następnie ją zawieszasz w tle, to system może wyczyścić zasoby zarezerwowane dla tej gry, aby aplikacja znajdująca się aktualnie w użyciu działała prawidłowo – w takim przypadku system sam umieszcza aplikację w stanie „Nie działa”, czyli tak jakbyś sam wyłączył całkowicie aplikację. Dzięki takiemu zachowaniu nie ma sytuacji, że iOS będzie działał powoli lub zabraknie mu pamięci potrzebnej dla aktualnie uruchomionego programu.

Więcej informacji o czynnościach wykonywanych przez aplikacje znajdziesz w instrukcji programowania aplikacji mobilnych na iOS-a na stronach dla deweloperów Apple (The App Life Cycle).

Wyjątki od reguły

Nadszedł czas, aby napisać o wyjątkach, o których wcześniej wspomniałem.

Wykonywanie zadania po zamknięciu: Istnieją aplikacje mobilne, które muszą zakończyć wykonanie krótkiego zadania, które rozpoczęły podczas gdy ją używałeś, ale mają zaprogramowany przedłużony czas na zakończenie różnych procesów, gdy aplikacja jest zamknięta. Na przykład, jeśli używasz klienta e-mail innych firm, aby wysłać bardzo duży plik, możesz dotknąć Wyślij i zamknąć aplikację. Ta aplikacja może zwrócić się o przedłużenie działania umieszczając ją w tle, w tym czasie wysyła Twój załącznik, pomimo, że umieściłeś ją w tle. W momencie, gdy appka zakończy zadanie, zostanie zawieszona.

Aplikacje, które muszą pobrać zawartość w tle: są to aplikacje, które inicjują pobieranie na pierwszym planie, ale potrzebuja trochę czasu, aby zakończyć to zadanie, gdy aplikacja zostanie przeniesiona do działania w tle. Według firmy Apple, te aplikacje mogą zwolnić część zasobów systemowych, dzięki czemu aplikacja zostanie zawieszona lub zkończona, podczas gdy trwa pobieranie danych. Dobrym przykładem może być aplikacja Podcasty, kiedy pobiera materiał wideo w tle. Możesz rozpocząć pobieranie, zamknąć aplikację, ale pobieranie będzie przetwarzane w tle.

Aplikacje, które potrzebują wykonać długo trwające zadania: są to aplikacje, które muszą być dopuszczone do pracy w tle przy wykonywaniu określonych typów zadań, takich jak odtwarzanie zawartości dźwiękowych (np. aplikacja Music, Spotify, Deezer, Soundcloud), nagrywanie dźwięku, aktywne śledzenie lokalizacji (np. aplikacja służąca do nawigacji), wspieranie protokołu VOIP – Voice over Internet Protocol (np. Skype i FaceTime), regularne przetwarzanie nowych treści (aplikacje w stylu magazynu newsów) i otrzymywanie regularnych aktualizacji lub powiadomień z akcesoriów zewnętrznych (np. aplikacja związana z czujnikiem rytmu serca).

Jednak użytkownik musi zaufać, że system będzie skutecznie i optymalnie zarządzał tymi aplikacjami.

Więcej o działaniu aplikacji w tle możesz przeczytać na stronach dla programistów aplikacji na iOS-a: Background Execution.

Kiedy aplikacje mobilne działają w tle?

W systemie mobilnym iOS na iPhone’a i iPada istnieje funkcjonalność, która pozwala zawieszonym aplikacjom na działanie w tle. Na przykład na pobieranie i odświeżanie danych lub wysyłanie powiadomień.

Przechodząc do opcji w aplikacji Ustawienia → Odświeżanie w tle, możesz zarządzać tym, które programy mogą (w tle) odświeżać swoje dane przez sieć Wi-Fi lub komórkową. Wykluczenie programów może pomóc przedłużyć pracę baterii. Dzięki przełącznikom możesz zdecydować, które aplikacje mogą co jakiś czas uruchamiać się w tle. Możesz także jednym ustawieniem wyłączyć odświeżanie dla wszystkich aplikacji mobilnych zainstalowanych na Twoim iPhone’ie. Osobiście mam wyłączoną tę funkcjonalność (wszystkie aplikacje mają wyłączoną możliwość odświeżania w tle) – to ja decyduję, kiedy mam sprawdzić stan jakiejś aplikacji, a nie aplikacja wymusza na mnie wejście do niej, aby sprawdzić powiadomienie. Być może spowodowane to jest tym, że w nadmiarze zainstalowanych aplikacji, mógłbym oszaleć wysłuchując powiadomienia lub zerkanie na ekran smartfona.

Aby oszczędzać baterię, aplikacje, które odświeżają dane w tle, mogą też działać w określonych sytuacjach – na przykład w momencie, gdy urządzenie jest połączone z siecią Wi-Fi lub podłączone do źródła zasilania. System iOS uczy się wzorów zachowań w oparciu o sposób korzystania z urządzenia i stara się przewidzieć, kiedy aplikacja powinna odświeżyć dane. System wie także, kiedy urządzenie jest zazwyczaj nieaktywne – na przykład w nocy – wtedy może także całkowicie wstrzymać jakiekolwiek działania. Działanie aplikacji można także uaktywniać w momencie znajdowania się tylko w określonej lokalizacji, np. w domu lub pracy.

Możesz bezpiecznie założyć, że system iOS jest na tyle inteligentny, że odświeża aplikacje tylko wtedy, gdy jest to konieczne – nie robi tego bezmyślnie przez cały czas, gdy masz wyłączony wyświetlacz! System nie odświeża stale Twojego konta na Facebooku, aby sprawdzić czy jest jakieś powiadomienie lub aktualizacja.

Zobacz także najlepsze sposoby, aby zaoszczędzić czas pracy baterii pod iOS-em w iPhone’ie.

Kiedy zatem należy wymusić zamknięcie aplikacji?

W teorii, nigdy nie powinno się wymuszać zamykania aplikacji mobilnych. W praktyce, jest to trochę bardziej subiektywne, ponieważ zdarzają się sytuacje, gdy trzaba zamknąć całkowicie aplikację – na przykład wtedy, gdy przestała działać prawidłowo, albo się zawiesiła. W takich przypadkach jest nawet konieczne całkowite zamknięcie i ponowne uruchomienia programu. W każdej innej sytuacji należy pozwolić systemowi iOS radzić sobie z zarządzaniem zasobów – to jedno z jego głównych zadań i zalet – Ty po prostu korzystaj z urządzenia i nie zawracaj sobie głowy otwartymi aplikacjami!

Mam nadzieję, że tym wpisem wyświadczyłem Ci przysługę :) Następnym razem, gdy zobaczysz kogoś kto zamyka karty aplikacji, wyślij mu link do tego artykułu, aby mógł uświadomić sobie, że jego zachowanie nie wpływa dobrze na żywotność baterii.

źródło: iDownloadBlog – Why force quitting apps to save battery life is a terrible idea