Zašto ažuriranja aplikacija ponekad kvare osnovne teme

click fraud protection

Na supstratne teme često negativno utječe učestalost ažuriranja aplikacija trećih strana, osobito kada se temari moraju prilagoditi onima koji su loše kodirani

To je uobičajena pojava: korisnici primjenjuju Substratum teme na svoje telefone, a zatim kasnije ažuriraju Slack, WhatsApp, Instagram ili bilo koji broj drugih aplikacija iz Trgovine Play. Odjednom ne mogu niti otvoriti te aplikacije dok im se ne onemoguće preklapanja tema. Mnogi noviji korisnici Substratuma izrazili su svoja iskustva s ovim problemom od izdavanja bezkorijen Substratum tema za Android Oreo.

Ponekad ponovna izgradnja slojeva u Substratumu riješi problem, ali ponekad neće raditi sve dok programer teme ponovno ne ažurira temu. U potonjem slučaju, korisnici su zapeli i moraju koristiti zahvaćene aplikacije u njihovim netematskim, zalihama. Nepotrebno je reći da ovo može biti frustrirajuće iskustvo za mnoge.

Problem je obično rezultat kombinacije čimbenika: loše kodirana aplikacija treće strane, česta ažuriranja navedene aplikacije koje zapravo uzrokuju više problema nego što ih rješavaju i ograničenja u Overlay Manager Service (OMS) okvir. Razgovarao sam s nekoliko poznatih tema koji su pružili neke vrijedne uvide u problem:

Jeremy Beck, tko proizvodi Spektar Podloga tema, i David Wilson od Dominacija slava.

Prema ovim nepokolebljivim osobama Substratuma, neki od najgorih prijestupnika u području loše kodiranih aplikacija su među najpopularnijima. WhatsApp, Instagram, Slack, Facebook i Telegram primjeri su koje su nam ovi Substratumovi temari naveli pri prepričavanju ovog problema. Zapravo, David je rekao da su to primjeri "užasno, odvratno, prezreno kodiranih" aplikacija, što živopisno ilustrira frustracija s kojom se susreću programeri teme Substratum kada usrećuju svoje korisnike dok pokušavaju objediniti svoja Android iskustva oko zajednička tema.

Na primjer, "prezirno kodirana" aplikacija može povezati boju teksta s bojom pozadine u svojoj datoteci colors.xml. Ako tema promijeni boju pozadine tako da više ne bude bijela u ovom primjeru, tekst će također biti promijenjen i mogao bi biti teži (ili čak nemoguć) za čitanje. Posljedično, tematičar će morati dodati vlastite xml datoteke rasporeda svojim preklapanjima teme kako bi odredio zasebne boje za tekst i pozadinu.

Upozorenje je da nove xml datoteke također moraju sadržavati svaki pojedini znak koda iz istoimenih datoteka izvorne aplikacije tako da se funkcionalnost ne gubi. To je zato što OMS čita iz zamjenske, themerove datoteke dok sama aplikacija pokušava učiniti sve što je izvorna datoteka dopuštala. Kada se aplikacija ažurira i napravi se čak i najmanja nepovezana promjena na izvorne xml datoteke, preklapanja neće raditi.

Evo kako David to objašnjava:

Ono što ovi smiješni "programeri" (opušteno koristim taj izraz kada opisujem te klaunove) rade jest da koriste stavke u layout xml što nam otežava pravilno tematiziranje aplikacije bez dodavanja tih layout xml-ova u naš sloj.

Da vam dam primjer, uzmimo WhatsApp i pogledajmo stavku u njihovom /res/values/colors.xml koja je #ffffffff

Oni koriste @color/white za boje teksta i boje pozadine u cijeloj svojoj aplikaciji. To znači da ako tema želi promijeniti boju "bijele" u nešto tamno kako bi mu pozadina bila tamna, onda će puno teksta također biti tamno, što je vrlo loše.

Kako bi zaobišli taj nedostatak, temari će dodati xml rasporeda u svoj sloj i promijeniti boju teksta ili boju pozadine ili oboje iz biti nešto poput android: background="@color/white" do nečega poput android: background="@*android: color/background_dark" kako bi pozadina bila tamna.

Ovo je sjajno i čini pozadinu tamnom, ali xml rasporeda treba sadržavati sve što izvorni xml rasporeda ima, što može varirati od nekoliko redaka do više od 100 redaka. Unutar tih redaka xml izgleda može biti puno različitih resursa koji se nalaze unutar izvornog koda aplikacije koji se pozivaju, kao što su ID-ovi, dimenzije, nizovi, stilovi itd. itd.

Sada tu leži problem... ako Themer napravi sloj koji odgovara WhatsApp 2.17.323 i WhatsApp ažurira na 2.17.351 (na primjer), onda ako WhatsApp u svojoj beskrajnoj mudrosti odluči promijeniti naziv recimo niza koji je bio u preklapanju napravljenom za 2.17.323 i taj niz više ne postoji u 2.17.351 tada preklapanje neće biti uspješno izgraditi.

Isto vrijedi za sve unutar preklapanja koje se nalazi u bilo kojem kodu koji poziva resurs koji je unutar aplikacije, ako je taj određeni resurs u aplikaciji za koju je sloj dizajniran, a zatim se aplikacija ažurira i resurs više nije u kodu aplikacije, tada se sloj neće kompilirati.

Ovo je samo jedan primjer igre mačke i miša naizmjeničnog ažuriranja aplikacija i tema s kojom se susreću korisnici Substratuma. Kada korisnici teme podržavaju veliki broj aplikacija trećih strana, moraju višestruko umnožiti ovu igru ​​sa svakim ažuriranjem teme. To je beskrajni ciklus praćenja višestrukih podržanih aplikacija i nade da frustrirani korisnici neće loše ocjenjivati ​​svoje teme između ažuriranja jer je Slack (za drugi primjer) gurnuo tri ažuriranja svoje aplikacije u dva tjedna od posljednjeg ažuriranja njihove omiljene Slack podrške tema.

Što možete učiniti u vezi s tim?

Osobno, obično čekam na ažuriraj na moje omiljene teme prije ažuriranja bilo koje aplikacije koju koristim koji su tematski. Ipak, nema svaki tematičar vremena za stalno ažuriranje kako bi pratio ažuriranja aplikacija, tako da vaša kilometraža može varirati. Ako stvarno ne možete podnijeti korištenje aplikacije u njenom netematiziranom stanju, onda možda čekanje nekoliko sati ili dana nije tako velika stvar za vas. Ako je ovo ipak problem, možda biste trebali tematizirati samo sistemske aplikacije koje se vjerojatno neće uskoro promijeniti (kao što je SystemUI ili Android Framework).

Samo prepoznajte da problem nije zbog samog Substratuma ili Substratumovih tema i nemojte kriviti programera teme kada nešto pođe po zlu. To je razlog zašto vam pokretači tema na OEM verzijama Androida kao što su EMUI, Samsung Experience ili LG UX ne dopuštaju tematizirati više od aplikacija sustava i samog korisničkog sučelja sustava. Da biste uživali u razini prilagodbe koju nudi Substratum, kompromis je u tome što ćete možda morati malo pričekati da biste uživali u najnovijem ažuriranju aplikacije.