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
startServicei 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.