Съдържание:
Всеки път, когато софтуерът на нашите телефони получи голяма актуализация, ние чуваме как ще се справи по-добре и използваме по-малко от нашата батерия. Макар че често е вярно, идеите и как се реализират, се нуждаят от много фина настройка, за да отговорят на очакванията. Android 7.0 подобрява две съществуващи функции, за да им помогне да реализират пълния си потенциал: Projects Doze и Project Svelte.
Целите са прости - намерете начини да направите телефона по-малко гладен, когато не го използвате, и по-добро управление на фоновите процеси. Целият софтуер е изграден с акцент върху производителността и ефективността, а операционната система - още повече. Ще разгледаме промените и ще видим как биха могли да окажат влияние.
Проект Svelte
Project Svelte пристигна през 2013 г. с пускането на Android 4.4 KitKat като начин за ОС да се представи по-добре на телефоните от по-нисък клас. На този фронт тя успя, но очаквахме по-големи промени, отколкото получихме. За добра представа какви са първоначалните намерения на Svelte, погледнете не повече от Android One. Целта беше да се създаде евтин хардуер, който да поддържа най-новата версия на Android достатъчно добре, за да препоръча.
С Android 7.0 проектът продължава да намалява въздействието върху производителността, като има още по-добра система за управление на фоновите процеси.
Промените в Svelte адресират два конкретни и важни проблема, които принуждават приложенията да се стартират на заден план
Android е много различен от iOS. Всеки програмист може да плати много малка такса и да публикува приложение в Google Play, наред с имена като Facebook или Samsung. При условие, че приложението няма злонамерен код, то ще стартира на живо за всеки, който ще го инсталира, и освен ако не му бъде съобщено за неподходящо съдържание или действия, за да остане (въпреки че Google казва, че прави автоматизирана проверка на всяко приложение, преди да го натисне на живо). Това е далеч от всяко подадено приложение, преминаващо през процес на ръчно одобрение и това означава, че приложенията не се отхвърлят, защото не следват най-добрите практики за разработка. Поведението на някои от текущите API не помага и дори най-добрите приложения могат да се събуждат и да използват ресурси твърде често поради грешен процес.
Подобренията на Svelte в Android Nougat коригират два страхотни проблема:
- Приложенията проверяват дали мрежата се променя с помощта на това, което се нарича излъчващ приемник. Когато се случи промяна, всяко приложение, което слуша промяната чрез метода по подразбиране, се събужда наведнъж и се опитва да обработи данните за промяната. Помислете как действа телефонът ви при първото му стартиране и всичко се опитва да се случи наведнъж, а вие има идея защо това се нуждае от някакво подобрение. Когато са насочени към Android 7.0, приложенията могат да слушат за промени в мрежата само през основната нишка (какво се изпълнява, когато приложението е будно и го използвате), така че да не се събуждат всеки път, когато превключвате мрежи. Това ще използва по-малко RAM и CPU време, което означава, че нашите телефони ще се представят по-добре и ще използват по-малко енергия.
- В предишните версии на Android приложенията можеха да слушат на подобен излъчващ приемник за снимка или видео, които да бъдат направени. Когато това се случи, всяко приложение, което слушаше, се събуждаше и се опитваше да обработи данните наведнъж. Както по-горе, това не е много добре отпред. В Android 7.0 не може да се изпраща новата картина и новите видео предавания. Това означава, дори ако разработчиците не актуализират съществуващи приложения, никога няма да им бъде казано да се събудят, когато е направена снимка или видео.
За да могат приложенията да правят много от нещата, които искаме, те трябва да останат живи. Отслабването на нещата, които правят, докато те спокойно чакат да станат активни отново чрез елиминиране на ненужни функции, означава, че по-малко приложения ще работят, вместо да спят, когато бъдат изпратени на заден план.
Проект Doze
Начинът, по който нещата работят сега, или обичате Doze, или не виждате Doze да прави нещо забележимо на телефона си. Това е заради начина на работа.
Когато Doze дебютира в Android 6.0, неговото намерение беше да отложи процесорната и мрежова активност, докато екранът на телефона ви беше изключен, изключен и неподвижен. Ако и трите критерия не бяха изпълнени, Doze няма да стартира, а приложенията ще продължат да работят както обикновено. Това работеше чудесно, докато сте в офиса и на бюрото си, но веднага щом влезе в джоба ви, Doze спря да прави каквото и да било и ползите престанаха.
Двустепенен Doze позволява на телефона ви да използва по-малко батерия, докато сте в движение и се движите
Промяната в поведението в Android Nougat е проста. Сега Doze има два етапа: единият е, когато екранът е изключен и телефонът е изключен, а другият е, когато телефонът също е неподвижен.
Когато телефонът ви работи само на батерията и екранът е изключен за определен период от време, приложенията ще спрат директно достъпа до мрежата, а дейности като синхронизиране и други задания се отлагат, докато не премине предварително определен период от време. След това кратък прозорец за поддръжка им позволява да изпълняват нормални фонови функции. Тази част работи, докато телефонът ви е в джоба ви или е обект на други форми на движение.
Когато телефонът все още е за определен период от време, всички ограничения на Doze - допълнителни неща, като приложения, които се будят на заден план или слушане за това, което се нарича аларма (не вида, който ви буди сутрин, те не са засегнати) или търсейки текущото местоположение - се прилагат отгоре на мрежата и отлагане на задания. Прозорецът за поддръжка все още редовно се появява, но между тези прозорци телефонът ви едва е жив и не прави много, докато не го вдигнете.
Знаем колко добре работи Doze (когато той не е модифициран от хората, които са изградили телефона ви), докато телефонът е все още. Сега ще видим и полза, когато сме и се движим.
Промените в Svelte и Doze ще коригират ли всяко представяне и проблем с батерията? Отговорът, разбира се, е не. Но тези промени са логични стъпки, които адресират две много специфични неща, които трябваше да бъдат адресирани. резултатът ще се окаже по-добър от този, който имаме сега, дори ако не може да реши всичко.