Czy wymuszone zamykanie aplikacji ma jakieś zalety na urządzeniach z iOS?

8

Otrzymałem mieszane odpowiedzi od różnych stron internetowych i osób dotyczące tego pytania i chciałem je zadać, abyście wszyscy odpowiedzieli raz na zawsze.

Pytanie brzmi: czy wymuszanie zamykania aplikacji (tj. Dwukrotne kliknięcie przycisku strony głównej, a następnie przesunięcie palcem w górę) ma jakąkolwiek korzyść z baterii lub ogólnej wydajności iPhone'a lub innego urządzenia z systemem iOS?

Munesawagi
źródło
1
@ Tetsujin Jeśli masz odpowiedź, opublikuj ją poniżej, dzięki. Komentarze nie mają funkcji do edycji lub sprawdzania „odpowiedzi” jako poprawnych (lub nie).
Robert Cartaino,

Odpowiedzi:

6

Wiele było dyskusji i dyskusji na ten temat. Wierzę, że było to korzystne dla iOS w wersjach v3 i v4, ale teraz nie jest.

Craig Federighi wyszedł nawet niedawno, mówiąc, że nie jest to konieczne i nie wydłuża żywotności baterii. Apple ma wbudowane zarządzanie pamięcią odpowiedni czas do zawieszenia i / lub zabicia aplikacji, gdy jest to konieczne. Jedyną sytuacją, w której należy wymusić zamknięcie aplikacji, jest brak reakcji.

fsb
źródło
4

W jednym przypadku wymuszone zamknięcie może przynieść iOSowi korzyści, które przewyższają koszt dalszego przetwarzania potrzebnego do oczyszczenia procesu, zrestartowania go i wyczyszczenia wszystkich plików, które są buforowane / otwarte.

Negatywnym skutkiem tego jest to, że aplikacje nie działają w tle - więc po przejściu do nowej aplikacji lub odskoczni / listy ikon / ekranu blokady iOS już zatrzymał / wstrzymał / opróżnił całą aktywność systemu plików dla aplikacji.

Sygnalizuje zamrożonej aplikacji, że musi w pełni zainicjować się od zera - bez względu na zapisany stan lub wyniki z pamięci podręcznej. Sygnalizuje to Apple w formie raportu o awarii (i opcjonalnie dla programisty) niektórych okruszków dokładnie tam, gdzie aplikacja była w kodzie, gdy została „zabita” przez użytkownika.

  • Pod względem wydajności aplikacje wymuszające działanie powodują, że iOS i aplikacja działają gorzej - w wielu przypadkach są znacznie gorsze.
  • Jeśli chodzi o żywotność baterii - aplikacje wymuszające zamknięcie sprawiają, że iOS i żywotność baterii również są wymiernie gorsze .

Pomyśl o tym jak o operacji - wyrządzasz wyraźną szkodę w krótkim okresie - chyba że jesteś pewien, że operacja jest potrzebna, nie bierz wydajności i zmuszaj się do rezygnacji.

bmike
źródło
Nie myśl, że to takie proste. Jeśli aplikacja zużywa znaczną ilość zasobów w tle (np. Facebook) i nie zamierzasz przełączać się na nią dłużej, wysiłek związany z ponownym uruchomieniem będzie mniejszy niż wysiłek związany z utrzymywaniem go.
nohillside
@patrix Nie mogę mówić konkretnie o Facebooku, ale jeśli aplikacja jest zarejestrowana do uruchamiania usług w tle, iOS uruchamia je od razu po wymuszeniu wyjścia - więc chyba, że ​​aplikacja jest zakodowana tak, aby nie uruchamiała się przy automatycznym uruchomieniu - force quit tak naprawdę nie zapobiega odrodzeniu się wątków / zadań w tle - po prostu je przerywa, czyści, a następnie uruchamia ponownie.
bmike
3

Ostatnio ten temat znów jest gorący. Mocno wierzę, że bezużyteczne jest wymuszanie zamykania aplikacji na urządzeniach z iOS. Ponowne uruchamianie aplikacji po awarii jest pomocne. Tutaj więcej informacji.

9to5Mac:

W niektórych kręgach od dawna panuje przekonanie, że korzystanie z funkcji wielozadaniowości w systemie iOS w celu wymuszenia zamknięcia aplikacji może pomóc w oszczędzaniu baterii iPhone'a lub poprawić szybkość oprogramowania, gdy smartfon się spowalnia.

Wcześniej w tym tygodniu użytkownik iPhone'a zdecydował się wysłać e-mail do dyrektora generalnego Apple'a Tima Cooka, aby raz na zawsze położyć problem, i zamiast tego otrzymał odpowiedź od Craiga Federighiego, wiceprezesa Apple ds. Inżynierii oprogramowania (przez 9to5Mac).

E-mailowa rozmowa

 

Tutaj, z oficjalnego dokumentu wsparcia dotyczącego zmuszania do zamykania aplikacji, znajduje się własna rada Apple, kiedy użyć tej funkcji:

Po dwukrotnym kliknięciu przycisku Strona główna pojawiają się ostatnio używane aplikacje. Aplikacje nie są otwarte, ale są w trybie gotowości, aby ułatwić nawigację i wykonywanie wielu zadań. Powinieneś wymusić zamknięcie aplikacji tylko wtedy, gdy nie odpowiada.

 

MacDailyNews cytuje wiadomość e-mail od Steve'a Jobsa z 2010 roku:

Po prostu użyj [wielozadaniowości iOS] zgodnie z przeznaczeniem, a będziesz zadowolony. Nie musisz nigdy zamykać aplikacji.

 

Na wypadek, gdybyś nie wierzył, że starszy wiceprezes Apple ds. Oprogramowania, oficjalna dokumentacja wsparcia Apple lub Steve Jobs, oto kilka innych artykułów wskazujących, w jaki sposób ten nawyk rzeczywiście szkodzi żywotności baterii iPhone'a:

l1ghthouse
źródło
0

Teoretycznie tak. Aplikacje działające w tle zużywają pamięć (ich wątki nadal istnieją i dlatego można je zobaczyć na liście po dwukrotnym kliknięciu przycisku Początek), a zatem zużywają baterię.

Ale praktycznie nie do końca. iOS dobrze radzi sobie z zarządzaniem pamięcią, a aplikacje działające w tle zużywają tylko niewielką ilość pamięci. A jeśli inne aplikacje działające na pierwszym planie (działające aktywnie i użytkownicy wchodzą w interakcje z nimi) potrzebują więcej pamięci, system iOS może zakończyć aplikacje w tle i wyczyścić pamięć. Przyczyną tego, że czasami wymuszane jest zamykanie aplikacji w celu zaoszczędzenia pamięci / żywotności baterii, jest to, że niektóre aplikacje mogą żądać uruchamiania długotrwałych zadań, nawet działających w tle, na przykład w celu pobierania w tle, okresowej synchronizacji danych, itp. (pamiętaj, że nie każda aplikacja to robi). Ale możesz je wyłączyć, konfigurując Odświeżanie aplikacji w tle w Ustawieniach -> Ogólne.

Podsumowując, w przypadku aplikacji, która niewiele robi w tle, wymuszenie zamknięcia nie przyniesie zauważalnych korzyści.

Stephenye
źródło
3
„Aplikacje działające w tle zużywają pamięć (ich wątki nadal istnieją i dlatego można je zobaczyć na liście po dwukrotnym kliknięciu przycisku Początek), a zatem zużywają baterię”. To nie jest technicznie poprawne. Po dwukrotnym kliknięciu przycisku Początek jest migawka (w pamięci) aplikacji, gdy została ona zamknięta. To, że to widzisz, nie oznacza, że ​​wątki nadal istnieją. iOS zatrzymuje działanie aplikacji i usuwa ją z pamięci, chyba że pozwolono jej działać w tle ORAZ aktywnie wykonuje przetwarzanie.
fsb
@fbara Nie zgadzam się. Według dokumentacji programisty Apple , aplikacje przejdą w stan zwany Suspendedwkrótce po przejściu w tło i „zawieszone aplikacja pozostanie w pamięci, ale nie wykona żadnego kodu”. Proces aplikacji jest nadal obecny, chyba że zostanie zakończony przez iOS. Jeśli masz XCode (narzędzie programistyczne dla aplikacji na iOS), możesz faktycznie użyć Debugowania-> Dołącz do procesu i zobaczyć listę procesów w telefonie, nawet jeśli nic nie jest uruchomione na pierwszym planie
Stephenye
Ten sam dokument stwierdza również: „Wkrótce po applicationDidEnterBackground:powrocie metody delegata aplikacji system wykonuje migawkę okien aplikacji . Podobnie, gdy aplikacja jest budzona w celu wykonania zadań w tle, system może wykonać nową migawkę, aby odzwierciedlić wszelkie istotne zmiany Na przykład po przebudzeniu aplikacji w celu przetworzenia pobranych elementów system wykonuje nową migawkę , która może odzwierciedlać wszelkie zmiany spowodowane włączeniem elementów. System używa tych migawek w interfejsie wielozadaniowości, aby pokazać stan app ”. Do tego miałem na myśli.
fsb
@fbara To prawda: migawki są używane przez wielozadaniowy interfejs użytkownika, szczególnie w celu nie wyświetlania wrażliwych danych podczas wchodzenia w tło (używane na przykład przez niektóre aplikacje bankowe). Ale myślę, że proces nadal istnieje. Ale nie skupiajmy się zbytnio na szczegółach technicznych tutaj, niezależnie od tego, że wciąż zużywa trochę pamięci (migawki nadal dobrze zużywają pamięć).
Stephenye
-1

Przekonałem się, że w szczególności zakończenie aplikacji na Facebooku może oszczędzić baterię. Po sprawdzeniu jego użycia w sekcji baterii (Ustawienia> Bateria> Czas) nie mogę nie być przekonany, że gra nie jest przyjemna.

Kok
źródło
Wynika to z faktu, że rejestruje się jako klient VoIP, a zamknięcie aplikacji tego nie zmieni.
Andrew Larsson,