Jak mogę zatrzymać uruchamianie aplikacji przy rozruchu w systemie operacyjnym Android?
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 ciężkim starcie aplikacji?
Dzisiejsza sesja pytań i odpowiedzi jest dostępna dzięki uprzejmości entuzjastów Androida - podtypu Stack Exchange, opartego na społecznościach grupowania witryn z pytaniami i odpowiedziami.
Pytanie
Czytelnik Androida Entuzjasta Scott Severance jest ciekawy, jak oswoić się z 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 zazwyczaj przechodzi w tło bez wychodzenia. Jak mogę wyłączyć te aplikacje??
Jakie jest rozwiązanie i zatrzymanie ich zawsze jest najbardziej wydajną metodą?
Odpowiedź
Uczestnik programu SuperUser Matthew Read oferuje szczegółowy podział, dlaczego nie ma to znaczenia tak bardzo, jak Scott uważa, i jak Android różni się zasadniczo od innych systemów operacyjnych w odniesieniu do aplikacji startowych i procesów działających 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 gdy 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 chodzi o ż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ę na okazjonalną kontrolę (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 odinstalowanie go. Problem rozwiązany! Możesz usunąć aplikacje systemowe, jeśli masz root, najłatwiej z Tytanową kopią zapasową, ale bądź ostrożny, aby usunąć tylko nadawca i 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 daemonów dostarczanych 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 wygrana 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 przypadku 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ą. Najczęściej powoduje to pogorszenie sytuacji, ponieważ aplikacje często zużywają więcej zasobów, gdy są uruchomione w porównaniu do czasu, gdy nie pracują. 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ślone działanie. 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)
, następnie ponownie wybierz swoją aplikację.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ą otrzymywać. Możesz też użyć aplikacji takiej jak Autostarty, aby szczegółowo edytować, które intencje będą wysyłane do wybranych aplikacji. W przypadku obu rozwiązań potrzebujesz dostępu do roota.
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 tytanu 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 przywileju 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, itp.) w pełni funkcjonalny, gdy wyraźnie go uruchomisz, bez konieczności jego wcześniejszego zamrażania.
OSTRZEŻENIE: Robić nie aplikacje hibernacji z budzikiem, 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.) do działania.
Dolna linia
Android ma za zadanie dbać o zarządzanie aplikacjami. We wszystkich przypadkach, które nie są ekstremalne, nie powinieneś się o to martwić. W razie problemu zalecamy skorzystanie z najprostszego rozwiązania - deinstalacji. Wszystkie inne rozwiązania są hackami wokół tego, co Android zaprojektował. 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.