If-Koubou

Jak Android zarządza procesami

Jak Android zarządza procesami (Jak)

System Windows zezwala na działanie aplikacji komputerowych bez względu na to, czy są one widoczne, czy nie, a system Apple iOS pozwala aplikacjom wykonywać tylko kilka zadań w tle. Android znajduje się gdzieś pośrodku - pierwszeństwo mają aplikacje działające na pierwszym planie, ale aplikacje mają więcej swobody działania w tle niż w systemie iOS.

Przyjrzymy się dokładnie, w jaki sposób Android zarządza aplikacjami i procesami działającymi na telefonie lub tablecie, demistyfikując to, co dzieje się w tle.

Hierarchia cyklu życia procesu

Proces na Androida może być w jednym z pięciu różnych stanów w danym momencie, od najważniejszego do najmniej ważnego:

  • 1. Proces pierwszoplanowy: Aplikacja, z której korzystasz, jest uważana za proces pierwszego planu. Inne procesy można również uznać za procesy pierwszoplanowe - na przykład w przypadku interakcji z procesem, który jest obecnie na pierwszym planie. W danym momencie istnieje tylko kilka procesów pierwszoplanowych.
  • 2. Widoczny proces: Widoczny proces nie jest na pierwszym planie, ale nadal ma wpływ na to, co widzisz na ekranie. Na przykład proces pierwszego planu może być dialogiem, który pozwala zobaczyć aplikację za nią - aplikacja widoczna w tle byłaby widocznym procesem.
  • 3. Proces obsługi: Proces serwisowy nie jest związany z żadną aplikacją widoczną na ekranie. Jednak robi coś w tle, na przykład odtwarzanie muzyki lub pobieranie danych w tle. Na przykład, jeśli zaczniesz odtwarzać muzykę i przełączysz się na inną aplikację, odtwarzanie muzyki będzie w tle obsługiwane przez proces serwisowy.
  • 4. Proces w tle: Procesy w tle nie są obecnie widoczne dla użytkownika. Nie mają one wpływu na korzystanie z telefonu. W danym momencie wiele procesów działających w tle jest obecnie uruchomionych. Możesz myśleć o tych procesach działających w tle jako o "wstrzymanych" aplikacjach. Są przechowywane w pamięci, dzięki czemu można szybko wznowić korzystanie z nich, gdy do nich wracasz, ale nie używają cennego czasu procesora ani innych zasobów pamięci.
  • 5. Pusty proces: Pusty proces nie zawiera już żadnych danych aplikacji. Może być przechowywany w celu buforowania, aby przyspieszyć uruchamianie aplikacji później, lub system może zabić go w razie potrzeby.

Na przykład załóżmy, że włączasz telefon i uruchamiasz aplikację muzyczną. Podczas korzystania z niego aplikacja muzyczna będzie stanowić proces pierwszego planu. Gdy zaczniesz odtwarzać muzykę i wyjdziesz z aplikacji muzycznej, muzyka będzie nadal odtwarzana jako proces serwisowy.

Spójrzmy na Angry Birds jako inny przykład. Angry Birds byłby pierwszoplanowym procesem podczas gry. Gdy opuścisz Angry Birds i wejdziesz do aplikacji Gmail, aby wyświetlić swój e-mail, Angry Birds staje się procesem działającym w tle (ponieważ nie musi robić nic w tle), a Gmail staje się pierwszym planem. Kiedy powrócisz do Angry Birds, stanie się on twoim pierwszym planem, a gra zostanie szybko wznowiona. Angry Birds nie korzystał z zasobów w tle - poza pewną pamięcią RAM - ale wznawiał się szybko, ponieważ pozostał zapisany w pamięci podręcznej i gotowy do wznowienia.

Android automatycznie zarządza procesami

Android radzi sobie z automatycznym zarządzaniem tymi procesami, dlatego nie potrzebujesz zabójcy zadań na Androida.

Kiedy Android potrzebuje więcej zasobów systemowych, zacznie najpierw zabijać najmniej ważne procesy. Android zacznie zabijać procesy puste i działające w tle, aby zwolnić pamięć, jeśli masz mało energii. Jeśli potrzebujesz więcej pamięci - na przykład, jeśli grasz w szczególnie wymagającą grę na urządzeniu bez dużej ilości pamięci RAM, Android zacznie zabijać procesy serwisowe, aby Twoja muzyka przesyłana strumieniowo i pobieranie plików mogło zostać zatrzymane.

W większości przypadków Android robi to wszystko bez konieczności martwienia się o to. Android inteligentnie wykorzystuje pamięć RAM urządzenia do buforowania aplikacji i innych danych, ponieważ nie ma sensu pozostawiać pustego RAMu.

Oczywiście Android zapewnia aplikacjom tyle elastyczności, że mają miejsce, by źle się zachowywać. Na przykład źle zakodowana aplikacja może uruchomić proces serwisowy, który cały czas działa w tle, zużywając cały czas procesora i znacznie zmniejszając żywotność baterii.

Jedna interesująca rzecz, którą zauważysz w aplikacjach antywirusowych, takich jak Avast! w przypadku Androida aplikacja antywirusowa używa ikony powiadomienia. jeśli spróbujesz wyłączyć ikonę powiadomienia, Avast! zaleci to. Mając widoczną ikonę powiadomienia, Avast! staje się aplikacją o wyższym priorytecie, uniemożliwiając Androidowi uznanie jej za aplikację działającą w tle i zabicie jej.

Aplikacje na Androida mogą się uruchamiać w odpowiedzi na zdarzenia

Aplikacje na Androida mogą również uruchamiać się w odpowiedzi na zdarzenia. Na przykład programista może zaprogramować swoją aplikację, aby automatycznie uruchamiała się przy starcie i uruchamiała usługę w tle. Aplikacje można uruchamiać w odpowiedzi na wiele innych zdarzeń, na przykład podczas robienia zdjęcia, zmiany połączenia danych itd. Dzięki temu aplikacje mogą wykonywać akcje w odpowiedzi na zdarzenia bez ciągłego działania w tle.

Zarządzanie procesami

Nie powinieneś zarządzać procesami ręcznie, ale możesz to zrobić na kilka sposobów. Możesz skorzystać z menu wielozadaniowości systemu Android w wersji 4.0 i nowszych, aby wykonać podstawowe zarządzanie procesami. Aby uzyskać do niego dostęp, dotknij dedykowanego przycisku wielozadaniowości na urządzeniach Nexus. Na innych urządzeniach z Androidem może być konieczne dwukrotne dotknięcie lub długie naciśnięcie przycisku strony głównej.

Aplikacje wyświetlane w menu najprawdopodobniej znajdują się w stanie "proces w tle". Możesz je zabić, przesuwając aplikację w lewo lub w prawo, co spowoduje jej usunięcie z pamięci urządzenia. To nie powinno być konieczne, ale może pomóc, gdy chcesz szybko zabić aplikację - może źle się zachowuje.

Możesz także przejść do ekranu Ustawienia, dotknąć Aplikacje, dotknąć aplikację i użyć przycisku Wymuś zatrzymanie, aby zabić niewłaściwie działającą aplikację.

System Android jest oparty na systemie Linux, a każda aplikacja na Androida jest przypisana do innego identyfikatora użytkownika systemu Linux lub konta użytkownika. To izoluje aplikacje od siebie nawzajem. Jeśli zrootujesz swoje urządzenie, aplikacje mogą wymknąć się ze swoich obszarów izolowanych użytkowników i działać z uprawnieniami roota.

Image Credit: JD Hancock na Flickr