Czy konieczne jest utrzymywanie listy uruchomionych i uruchomionych aplikacji szczupłych i znaczących w systemie operacyjnym Android, a jeśli tak, to w jaki sposób można położyć hamulce na starcie aplikacji o dużym obciążeniu?
Dzisiejsza sesja pytań i odpowiedzi jest dostępna dzięki uprzejmości entuzjastów Androida - podpodziałowi Stack Exchange, społecznościowej grupy witryn z pytaniami i odpowiedziami.
Czytelnik Androida Entuzjasta Scott Severance jest ciekawy, jak poskromić jego rutynową procedurę uruchamiania Androida:
Kiedy mój telefon się uruchamia, w tle jest kilka aplikacji / usług, których wolałbym nie robić. A gdy naciśniesz przycisk Strona główna podczas korzystania z aplikacji, ta aplikacja zwykle przechodzi w tło bez wychodzenia. Jak mogę wyłączyć te aplikacje?
Jakie jest rozwiązanie i czy zatrzymanie ich jest zawsze najbardziej efektywną metodą?
Autor dodatku SuperUser Matthew Read oferuje szczegółowy podział, dlaczego nie ma to znaczenia tak bardzo, jak wierzy Scott, i jak Android różni się zasadniczo od innych systemów operacyjnych w odniesieniu do aplikacji startowych i procesów w tle:
Najpierw najważniejsze rzeczy
Możesz mieć nieporozumienia na temat działania Androida i tego, co naprawdę się dzieje, gdy usługa jest uruchomiona lub aplikacja jest w tle. Zobacz też: Czy naprawdę muszę zainstalować menedżera zadań?
Większość aplikacji (np. Uruchamianych ręcznie) ma włączoną bieżącą aktywność po zmianie na inną aplikację lub ekran główny. Aktywności zużywają trochę pamięci, dzięki czemu można wrócić do aplikacji i odebrać miejsce, w którym zostało przerwane. Aktywności zwykle nie są w stanie wykonywać obliczeń w tle, więc nie są używane żadne procesory ani baterie. Jeśli problemem jest żywotność baterii lub wydajność procesora, nie musisz się martwić o te aplikacje! Nie musisz też martwić się pamięcią; Android automatycznie zabije aplikację i zwolni pamięć, jeśli system jest na wyczerpaniu.
Jeśli aplikacja działająca w tle uruchamia usługę, może to być inna historia. Dobrze zaprojektowane usługi spędzają większość czasu na spaniu, budząc się przy okazjonalnym czeku (na przykład powiadomienia w mediach społecznościowych). Jednak źle zaprojektowane usługi mogą działać częściej lub wykonywać operacje synchronizacji, których nie chcesz, wpływając na żywotność baterii i zużycie danych. Jeśli masz nieuczciwą usługę, możesz wypróbować jedno z poniższych rozwiązań.
Rozwiązania
Jeśli na pewno chcesz zatrzymać tę aplikację za wszelką cenę, wypróbuj te metody.
Odinstaluj
Gdy aplikacja robi coś, czego nie lubisz, działając w tle podczas uruchamiania lub czegoś innego, pierwszą opcją jest jej odinstalowanie. Problem rozwiązany! Możesz usunąć aplikacje systemowe, jeśli masz root, najłatwiej z Titanium Backup, ale uważaj, aby usunąć tylko nadawca przewoźnika, a nie krytyczne aplikacje systemowe.
Jeśli jednak chcesz mieć możliwość korzystania z tej aplikacji, nie jest to opcja: czytaj dalej.
Pinguj programistę
Niektóre z największych demonów dostarczanych wraz z Androidem to usługi działające w tle bez powodu lub gdy wystarczyłoby proste sprawdzenie interwału za pomocą aplikacji AlarmManager systemu Android. Musimy zabić ich wszystkich ogniem, a nie ignorując ich. Wszystko, co nie wymaga naprawy przez programistę, to po prostu hack, który spowoduje inne negatywne efekty uboczne. Jeśli skontaktujesz się z programistą, który ma problem, może on naprawić aplikację i możesz normalnie korzystać z niej. To jest zwycięstwo dla wszystkich zaangażowanych.
Ręczne zabijanie aplikacji
Po pierwsze, pamiętaj, że wiele aplikacji zostanie całkowicie zamkniętych, jeśli wycofasz się z nich, zamiast używać przycisku strony głównej.
Jeśli używasz Ice Cream Sandwich lub Jelly Bean, możesz przejść do Ustawień, kliknąć Aplikacje i ręcznie zamknąć aplikację, przechodząc do uruchomionych aplikacji. Możesz też nacisnąć przycisk Ostatnie aplikacje i przesuń je z ekranu, aby je zamknąć. W starszych wersjach Androida może być wbudowany Menedżer zadań dodany przez producenta, aby osiągnąć to samo, lub możesz pobrać aplikację do zarządzania zadaniami, aby to zrobić. W sprawie usług spójrz na
Ustawienia -> Aplikacje -> Usługi
.OSTRZEŻENIE: Robićnie używaj automatycznych zabójców zadań! Automatyczne zabijacze zadań działają w tle (dokładnie to, czego nie chcesz) i zabijają aplikacje, gdy tylko zaczną. Zazwyczaj pogarsza to sytuację, ponieważ aplikacje często zużywają więcej zasobów, gdy są uruchomione w porównaniu do czasu, gdy są bezczynne. Usługi uruchamiane automatycznie i ponownie uruchamiane przez system będą w dalszym ciągu zabijane, marnując baterię. Podobnie aplikacje, które odbierają zdarzenia systemowe znane jako Intents (takie jak zasięg sieci i zmiany łączności), będą zabijane za każdym razem, gdy zaczną otrzymywać wydarzenie. Nic dobrego nie może z tego wyniknąć.
Możliwym wyjątkiem są zadania automatyczne, które są wykonywane tylko wtedy, gdy ty, użytkownik, wykonasz określoną akcję. Zasadniczo ułatwiają one ręczne zarządzanie zadaniami. Aplikacja taka jak Tasker lub Lama może być używana do kończenia działań po zmianie aplikacji, na przykład upewniając się, że nie pozostają w tle. Instrukcje dla Lamy:
Stwórz nowy
Zdarzenie
. Dodaj warunek o nazwieAktywna aplikacja
i wybierz statusAplikacja zatrzymana lub w tle
. Wybierz aplikację, na której chcesz się skupić. Następnie dodajAkcja
. WybierzZabij aplikację (uprawnienia root'a)
, a następnie wybierz swoją aplikację ponownie.Teraz, gdy opuszczasz aplikację, Llama ją zabije.
Edycja Autostartów i intencji
Jak wspomniano powyżej, niektóre aplikacje mogą zostać uruchomione, gdy otrzymają Intencje (zdarzenia systemowe). Korzystając z aplikacji takiej jak Permissions Denied, możesz zmienić uprawnienia, o które mogą prosić aplikacje, co z kolei ogranicza, które zdarzenia mogą otrzymać.Możesz też użyć aplikacji takiej jak Autostartery, aby szczegółowo edytować, które intencje będą wysyłane do wybranych aplikacji. W przypadku obu rozwiązań potrzebny będzie dostęp do konta root.
Inne opcje:
- Autorun Manager
- Menedżer aplikacji Gemini
(Autostarts to darmowe oprogramowanie typu open-source, dostępne również z f-droid).
OSTRZEŻENIE: Może to spowodować, że aplikacje przestaną działać lub będą hamowaćchciał funkcjonalność. Zachowaj ostrożność, szczególnie w przypadku krytycznych aplikacji systemowych.
Zamrażanie aplikacji
Możesz użyć aplikacji takiej jak Kopia zapasowa Titanium lub Kwarantanna aplikacji, aby zakończyć zamrożenie aplikacji, tak aby nie mogły w ogóle działać. Jeśli chcesz ich użyć, musisz najpierw je odblokować.
OSTRZEŻENIE: Robićnie zrób to z krytycznymi aplikacjami systemowymi! Twoje urządzenie może się nie uruchomić.
Umieść aplikacje w hibernacji
Greenify (wymagaj Androida 4.0+ i uprawnienia ROOT) używają innej metody zwanej "Hibernacją", od tradycyjnego "Zamrażania".
Możesz bezpiecznie hibernować każdą aplikację niesystemową, której nie chcesz używać w ukryciu (przez trwałe usługi, programy telewizyjne, alarmy itd.), Co jest równoważne "zamrożeniu", przy jednoczesnym zachowaniu wszystkich jego wejść (ikona programu uruchamiającego, cel udostępniania, itd.) w pełni funkcjonalny, gdy wyraźnie uruchamiasz go, bez potrzeby jego wcześniejszego zamrażania.
OSTRZEŻENIE: Robićnie aplikacje hibernacji, aplikacje do komunikatorów internetowych i inne aplikacje, których podstawowa funkcjonalność opiera się na mechanizmie działającym w tle (timer, zdarzenia systemowe, "push" itp.).
Dolna linia
Android ma za zadanie dbać o zarządzanie aplikacjami. We wszystkich, ale w najbardziej ekstremalnych przypadkach, nie powinieneś się o to martwić. Gdy wystąpi problem, radzimy wybrać najprostsze rozwiązanie - odinstalowanie. Wszystkie inne rozwiązania są hackami wokół tego, co zaprojektował Android. Może kiedyś Android będzie miał oficjalne wsparcie dla zarządzania usługami, ale do tego czasu bądź ostrożny.
Czy masz coś do dodania do wyjaśnienia? Dźwięk w komentarzach. Chcesz przeczytać więcej odpowiedzi od innych użytkowników Stack Exchange, którzy znają się na technologii? Sprawdź cały wątek dyskusji tutaj.