Sobes.tech
Middle+

Kako se određuje prioritet aplikacija u sistemu?

sobes.tech АИ

Одговор од АИ

Prioritet aplikacije u Androidu određuje se na osnovu nekoliko faktora, od kojih su glavni:

  • Aktivnost komponenti: Aplikacija koja ima aktivne komponente (aktivnosti na prvom planu, servisi pokrenuti sa startForeground) ima viši prioritet.
  • Korišćenje resursa: Aplikacije koje aktivno koriste CPU ili zauzimaju mnogo memorije mogu biti označene od strane sistema kao manje prioritetne, kako bi se sačuvali resursi za važnije zadatke.
  • Interakcija sa korisničkim interfejsom: Aplikacije koje direktno komuniciraju sa korisnikom u tom trenutku dobijaju najviši prioritet.
  • Veza sa procesima višeg prioriteta: Proces na koji je povezan komponent (npr. servis povezan sa aktivnošću) nasledjuje prioritet procesa višeg prioriteta.

Sistem Android koristi ove faktore za određivanje "nivoa važnosti" (importance level) aplikacije, što u konačnici određuje koliko je verovatno da će njegov proces biti završen (ubijen) u slučaju nedostatka memorije.

Glavni nivoi važnosti procesa:

  • Proces u prvom planu: Najvažniji proces. Aplikacija sa aktivnošću vidljivom na ekranu, servisom pokrenutim sa startForeground, ili koja koristi određene API-je (npr. povezano sa drugom aktivnošću na prvom planu). Nikada ne bude završen od strane sistema, osim ako se ne iscrpe kritični resursi.
  • Vidljiv proces: Proces koji nema komponente na prvom planu, ali utiče na to što vidi korisnik. Na primer, proces koji sadrži servis povezan sa aktivnošću na prvom planu.
  • Proces servisa: Proces koji sadrži servis pokrenut sa startService i nije označen kao foreground servis. Može biti završen kada nedostatak memorije postane ozbiljan.
  • Keš proces: Proces bez aktivnih komponenti i sačuvan u memoriji za brži ponovni početak rada. Najmanje je važan proces i najverovatniji kandidat za završetak u slučaju nedostatka memorije.