Случвало се е на всеки: чакаш цял ден важно съобщение от близък или колега и то не идва и не идва. В един момент отваряш чат приложението, за да провериш нещо съвсем друго… и започва канонада от реплики в чатове от последните часове. Някъде там е и важното съобщение, което си чакал и което сега изглежда, че най-безразсъдно си пропуснал. Не е приятно, а в служебен контекст може и да донесе със себе си цял куп проблеми.
Кой е виновен? Смартфонът ли ни прави номера, бъгаво ли е чат приложението или ние като потребители сме натиснали нещо погрешно? Всъщност, всички отговори са верни – поне донякъде. Хардуерът и софтуерът имат сложни взаимоотношения от поколения насам, които са се пренесли и в епохата на „умните“ телефони и програмите за тях. Така някои програмисти злоупотребяват с възможностите на съвременните операционни системи, а в отговор производителите на устройства агресивно ограничават работата на всяко инсталирано приложение – и, на фона на всичко това, потребителите често активират настройки, които не разбират напълно.
Ще се опитаме да хвърлим малко светлина по тази тема, като основен фокус ще е най-масовата операционна система – Android.
Фонът е важен
Една от основните характеристики на съвременния смартфон е възможността да работи в многозадачен режим – голям брой приложения действат едновременно, не е активно само това, с което потребителят в дадения момент е ангажиран. За целта операционните системи поддържат голям брой фонови процеси, свързани с различните програми – били те системни или допълнително инсталирани. Най-простият пример е алармата – никой не стои цяла нощ с отворено приложение в очакване тя да се активира, нейният процес следи за зададени дата и час и събужда програмата, а тя – теб.
Ако нещо разстрои работата на фоновите процеси, зависещите от тях приложения също ще имат проблеми. В нашия пример това би означавало алармата да не се активира, но също така може чат програмата да не получи най-новите съобщения, тази за следене на здравните показатели да остане без актуални данни и т.н. Накратко – нашето приложение е било „убито“.
Защо би могло да се случи това?
Така обяснено, изглежда логично операционната система да не се меси на фоновите процеси, за да бъде потребителското преживяване оптимално. В някои случаи обаче това е доста далеч от истината.
Работата на фоновия процес изисква определен системен ресурс, като в някои случаи той може да се окаже много голям. Зле направена програма е в състояние, например, да „събужда“ няколко пъти в минута процесора и така устройството винаги да е в „полубудно“ състояние. По този начин батерията пада за часове, вместо за ден или повече. Също така тежките приложения са предизвикателство за смартфоните от по-ниския клас, които нямат достатъчно оперативна памет, за да ги „поберат“. Така комбинацията от социални мрежи и някоя по-сериозна игра може да доведе устройството до почти неизползваемо състояние, ако всяка програма използва неограничени ресурси. Никой производител не иска това да се случва.
Голямата конкуренция между различните марки освен това е по всички фронтове, в това число – и за най-издръжлива батерия. Въпреки тенденцията акумулаторите да са с по над 4000 mAh капацитет, технологиите все още трудно могат да ни дадат устройство, което да издържи два пълни дни интензивна работа, преди да се наложи да го включим в зарядното. Затова производителите прибягват и до сериозни софтуерни оптимизации, които могат да бъдат за сметка на инсталираните приложения.
Допълнителен проблем е, че на някои пазари (най-вече – в Азия) са популярни виртуални магазини, различни от Google Play. Тези платформи обикновено имат значително по-ниски критерии за одобряването на дадена програма и там се промъкват наистина зле оптимизирани приложения. Тогава операционната система единствена може да въведе ред в това кой как използва ресурсите на устройството – а няма как преценката на алгоритмите да е винаги точна при наличието на буквално милиони приложения.
Така се получава неприятната ситуация, в която добре работещи програми се „чупят“ на добре работещи смартфони от известни производители. И двете страни имат своите аргументи, но потърпевш така или иначе е крайният потребител.
Какво можем да направим?
През последните години отношенията между производители и разработчици на софтуер все пак бележат известно подобрение. Практически всички основни марки смартфони вече идват с операционна система, в която потребителят може да настрои оптимизациите за всяко едно инсталирано приложение.
Първата „спирка“ по пътя ни са настройките на дадената програма и по-специално частта, посветена на батерията. Там, в зависимост от марката, най-често има вариации на следните три опции – автоматично управление на използването на ресурси (опцията по подразбиране), ограничаване на фоновия режим и работа без ограничения. Ако за нас даденото приложение е важно, трябва да изберем последната опция – но все пак е добре да следим за прекалено бързо изтощаване след това.
Малка, но важна стъпка е да отваряме важните за нас приложения достатъчно често. Това звучи очевидно, но не винаги е така – ако, например, използвате Microsoft Teams изцяло на служебния си компютър, но го имате „за всеки случай“ и на смартфона си, не се чудете защо не сте получили именно там някое важно съобщение по работа в съботния следобед. Обикновено оптимизациите проявяват малко повече „милост“ към често използваните програми.
Това обаче не е единственото, което можем (а и трябва) да направим, ако сме склонни да жертваме няколко процента батерия в замяна на предвидимо работещи приложения. Стъпките варират при различните приложения и са добре описани в сайта с добро тематично име https://dontkillmyapp.com/ („Не убивай моето приложение“ – англ.). Той се поддържа от разработчици на софтуер, които описват практиките на производителите на смартфони да „оптимизират“ прекомерно операционната система на устройствата си за сметка на функционалностите.
Дълги години Google не се намесваха в този сюжет с мотива, че всяка компания сама преценява как да настрои операционната система, която все пак е с отворен код. В края на юни, обаче, стана ясно, че онлайн гигантът може да промени процедурите си по сертифициране на устройства и в тях да влезе и проверка за твърде агресивно премахване на фоновите процеси. Все още няма конкретика по този въпрос, но и със сигурност окончателното решение по такъв сложен въпрос няма да дойде лесно.