Sobes.tech
Middle+

Ինչպես է որոշվում ծրագրերի առաջնահերթությունը համակարգում?

sobes.tech AI

Պատասխան AI-ից

Android-ում հավելվածի առաջնահերթությունը որոշվում է մի քանի գործոնների հիման վրա, որոնցից գլխավորներն են՝

  • Կոմպոնենտի ակտիվությունը: Հավելվածը, որի ակտիվ կոմպոնենտները (ակտիվությունները առջևի պլանում, ծառայությունները, որոնք սկսվել են startForeground-ով), ունի ավելի բարձր առաջնահերթություն:
  • Ռեսուրսների օգտագործումը: Ակտիվ CPU-ով կամ շատ հիշողություն օգտագործող հավելվածները համակարգի կողմից կարող են նշվել որպես ավելի ցածր առաջնահերթությամբ՝ ավելի կարևոր գործառույթների համար ռեսուրսներ պահելու համար:
  • Համակարգչային ինտերֆեյսի հետ կապը: Հավելվածները, որոնք անմիջապես փոխազդում են օգտվողի հետ այս պահին, ստանում են ամենաբարձր առաջնահերթությունը:
  • Կապ ավելի բարձր առաջնահերթության պրոցեսների հետ: Պրոցեսը, որի հետ կապված է կոմպոնենտը (օրինակ՝ ծառայությունը, որի հետ կապված է ակտիվությունը), ժառանգում է ավելի բարձր պրոցեսի առաջնահերթությունը:

Android համակարգը օգտագործում է այս գործոնները՝ որոշելու համար «շրջանակի կարևորությունը» (importance level) հավելվածի, որը վերջնականապես որոշում է, թե որքան հավանական է, որ նրա պրոցեսը կավարտվի (կտրվի) հիշողության պակասի դեպքում:

Հիմնական կարևորության մակարդակները՝ պրոցեսների:

  • Foreground process: Ամենահետաքրքիր պրոցեսը: Հավելված, որի ակտիվությունը տեսանելի է էկրանին, կամ որը սկսվել է startForeground-ով, կամ օգտագործում է որոշ API-ներ (օրինակ՝ կապված մյուս ակտիվության հետ առջևի պլանում): Երբեք չի ավարտվում համակարգի կողմից, եթե միայն չկան խիստ ռեսուրսների պակաս:
  • Visible process: Պրոցես, որը չունի առջևի պլանի կոմպոնենտներ, բայց ազդում է այն վրա, ինչ տեսնում է օգտվողը: Օրինակ՝ պրոցես, որը պարունակում է ծառայություն, կապված առջևի պլանի ակտիվության հետ:
  • Service process: Պրոցես, որը պարունակում է ծառայություն, սկսված startService-ով և չնշված որպես foreground service: Կարող է ավարտվել, երբ ռեսուրսների պակասը լուրջ է դառնում:
  • Cached process: Պրոցես, որը չունի ակտիվ կոմպոնենտներ և պահվում է հիշողության մեջ՝ արագ վերականգնման համար: Ամենափոքր կարևորության պրոցեսն է և ամենահավանական թեկնածուն՝ ավարտելու համար ռեսուրսների պակասի դեպքում։