Middle+
Kuidas määratakse rakenduste prioriteet süsteemis?
sobes.tech AI
Vastus AI-lt
Androidi rakenduse prioriteet määratakse mitmete tegurite alusel, millest peamised on:
- Komponendi aktiivsus: Rakendus, millel on aktiivsed komponendid (aktiivsed ekraanil, teenused, mis on käivitatud
startForeground-iga), omab kõrgemat prioriteeti. - Resursside kasutamine: Rakendused, mis aktiivselt kasutavad CPU-d või kasutavad palju mälu, võivad süsteemi poolt märgitud madalama prioriteediga, et säilitada ressursse tähtsamate ülesannete jaoks.
- Kasutajaliidese ühendus: Rakendused, mis otseselt suhtlevad kasutajaga hetkel, saavad kõrgeima prioriteedi.
- Seos kõrgema prioriteediga protsessidega: Protsess, millele on seotud komponent (näiteks teenus, mis on seotud aktiivsusega), pärib kõrgema protsessi prioriteedi.
Android süsteem kasutab neid tegureid, et määrata "olulisuse taset" (importance level) rakenduse jaoks, mis lõpuks määrab, kui tõenäoline on, et selle protsess lõpetatakse (lõhutakse) mälu puudumise korral.
Peamised protsesside olulisuse tasemed:
- Esiplaaniprotsess: Kõige olulisem protsess. Rakendus, mille aktiivsus on nähtaval ekraanil, või mis on käivitatud
startForeground-iga, või kasutab teatud API-sid (näiteks seotud teise esiplaani aktiivsusega). Ei lõpe kunagi süsteemi poolt, kui ainult kriitiliste ressursside puudus ei ole. - Nähtav protsess: Protsess, millel ei ole esiplaani komponente, kuid mõjutab seda, mida kasutaja näeb. Näiteks protsess, mis sisaldab teenust, mis on seotud esiplaani aktiivsusega.
- Teenuse protsess: Protsess, mis sisaldab teenust, mis on käivitatud
startService-iga ja ei ole märgitud kui esiplaani teenus. Võib lõpetada, kui mälu puudus muutub tõsiseks. - Käivitatud protsess: Protsess, millel ei ole aktiivseid komponente ja mis on mälus salvestatud kiireks taastamiseks. Kõige madalama tähtsusega protsess ning tõenäolisem kandidaat lõpetamiseks mälu puudumisel.