На теме супстрата често негативно утиче учесталост ажурирања апликација трећих страна, посебно када теме морају да се прилагоде онима које су лоше кодиране
То је уобичајена појава: корисници примењују Субстратум теме на своје телефоне, а затим касније ажурирају Слацк, ВхатсАпп, Инстаграм или било који број других апликација из Плаи продавнице. Одједном не могу чак ни да отворе те апликације све док се њихове теме не онемогуће. Многи новији корисници Субстратум-а изнели су своја искуства са овим проблемом још од објављивања Субстратум тема без корена за Андроид Орео.
Понекад поновна израда слојева у Субстратуму решава проблем, али понекад неће функционисати док програмер теме поново не ажурира тему. У последњем случају, корисници су заглављени због тога што морају да користе погођене апликације у њиховим нетематским, залихама. Непотребно је рећи да ово може бити фрустрирајуће искуство за многе.
Проблем је обично резултат комбинације фактора: лоше кодиране апликације треће стране, честих ажурирања наведене апликације које заправо изазивају више проблема него што решавају и ограничења у услузи Оверлаи Манагер (ОМС) оквир. Разговарао сам са неколико познатих тема који су дали неке вредне увиде у то питање:
Џереми Бек, који прави Спецтрум Тема супстрата, и Давид Вилсон оф Доминација слава.Према овим присталицама Субстратум, неки од најгорих преступника у домену лоше кодираних апликација су међу најпопуларнијим. ВхатсАпп, Инстаграм, Слацк, Фацебоок и Телеграм су примери које су нам ови Субстратум теме цитирали када су нам говорили о овом проблему. У ствари, Давид је рекао да су то примери „ужасно, одвратно, одвратно кодираних“ апликација, што живописно илуструје фрустрација са којима се сусрећу програмери Субстратум теме када задовоље своје кориснике док покушавају да обједине своја Андроид искуства око заједничка тема.
На пример, апликација која је „одвратно кодирана“ може да повеже боју текста са бојом позадине у датотеци цолорс.кмл. Ако тема промени боју позадине да више не буде бела у овом примеру, текст ће се такође променити и може бити отежано (или чак немогуће) за читање. Сходно томе, тхемер ће морати да дода своје кмл датотеке распореда у своје прекриваче теме да би одредио одвојене боје за текст и позадину.
Упозорење је да нове кмл датотеке такође морају да садрже сваки појединачни знак кода из оригиналних датотека апликације истог имена тако да ниједна функционалност није изгубљена. То је зато што ОМС чита из замене, датотеке теме, док сама апликација покушава да уради све што је оригинална датотека дозвољавала. Када се апликација ажурира и направи се и најмања неповезана промена на оригиналне кмл датотеке, прекривачи неће радити.
Ево како Давид то објашњава:
Оно што ови смешни "програмери" (користим тај израз олако када описујем ове кловнове) је да користе предмете у лаиоут кмлс што нам отежава правилно постављање теме апликације без додавања тих кмл-ова распореда у наш слој.
Да вам дамо пример, узмимо ВхатсАпп и погледамо ставку у њиховој /рес/валуес/цолорс.кмл која је
#фффффффф Они користе @цолор/вхите и за боје текста и за боје позадине у целој својој апликацији. То значи да ако тема жели да промени боју „беле“ у нешто тамно да би им позадина била тамна, онда ће и много текста учинити тамним, што је веома лоше.
Да би заобишли тај недостатак, теме ће додати изглед кмл у свој слој и променити или боју текста или боју позадине или обоје из бити нешто попут андроид: бацкгроунд="@цолор/вхите" на нешто попут андроид: бацкгроунд="@*андроид: цолор/бацкгроунд_дарк" да би позадина била тамна.
Ово је сјајно и чини позадину тамном, али изглед кмл-а треба да укључи све што има оригинални кмл изглед који може да варира од неколико редова до преко 100 редова. Унутар тих линија кмл изгледа може бити много различитих ресурса који се налазе унутар оригиналног кода апликације који се позивају, као што су ИД-ови, димензије, стрингови, стилови итд.
Е сад ту лежи проблем... ако тема направи прекривач тако да одговара ВхатсАпп 2.17.323 и ВхатсАпп ажурирањима на 2.17.351 (на пример), онда ако ВхатсАпп у својој бескрајној мудрости одлучи да се промени име рецимо стринга који је био у преклапању направљеном за 2.17.323 и тај низ више не постоји у 2.17.351 онда прекривање неће успешно градити.
Исто важи и за било шта унутар преклапања што се налази у било ком коду који позива ресурс који се налази у апликацији, ако је тај одређени ресурс био у апликацији за коју је прекривач дизајниран, а затим се апликација ажурира и ресурс више није у коду апликације, онда се прекривач неће компајлирати.
Ово је само један пример игре мачке и миша наизменичних ажурирања апликација и тема са којима се Субстратум теме суочавају. Када теме подржавају велики број апликација трећих страна, морају да умноже ову игру неколико пута са сваким ажурирањем теме. То је бескрајни циклус праћења више подржаних апликација и наде да фрустрирани корисници неће лоше оценити своје теме између ажурирања јер је Слацк (на пример) избацио три ажурирања своје апликације у две недеље од последњег ажурирања њихове омиљене подршке за Слацк тема.
Шта можете учинити поводом тога?
Лично, обично чекам на ажурирајте на моје омиљене теме пре него што ажурирам било коју апликацију коју користим који су тематски. Уз то, нема сваки тхемер времена да стално поставља ажурирања како би био у току са овим ажурирањима апликација, тако да ваша километража може варирати. Ако заиста не можете да поднесете коришћење апликације у њеном стању без тематике, можда чекање неколико сати или дана није велика ствар за вас. Ако је ово проблем, онда бисте можда желели да поставите тему само системске апликације за које је мало вероватно да ће се ускоро променити (као што су СистемУИ или Андроид Фрамеворк).
Само схватите да проблем није у самом Субстратуму или Субстратум темама и немојте кривити програмера теме када нешто крене наопако. То је разлог зашто мотори тема на ОЕМ верзијама Андроид-а као што су ЕМУИ, Самсунг Екпериенце или ЛГ УКС не дозвољавају да постављате теме више од системских апликација и самог системског корисничког интерфејса. Да бисте уживали у нивоу прилагођавања који Субстратум нуди, компромис је што ћете можда морати да сачекате кратко да бисте уживали у најновијем ажурирању апликације.