Hogyan tett az aljzat több választási lehetőséget a rugalmatlan TouchWiz számára?

A [projekt.] csapatának Sungstratumja az RRO-OMS összes tematikus finomságát elhozza a Samsung Nougat készülékekre a Substratumon keresztül! Olvasson tovább, ha többet szeretne megtudni!

Az Android-téma hosszú utat tett meg, a durva szerkesztésektől a Substratumig, és most, Sungstratum. Évekkel ezelőtt az Android-beszélgetésekben a „téma” szót gyakran felváltotta a „választó” szó, ezzel bólintva a CyanogenModban található T-Mobile témaválasztó, amely lefektette azokat az alapokat, amelyek az Androidot témává tették paradicsom. Az operációs rendszer megjelenésének módosítása további testreszabási dimenziót adott a felhasználóknak, lehetővé téve számukra, hogy olyan változtatásokat hajtsanak végre, amelyek sokkal személyre szabottabbá teszik eszközeiket.

A jó munka két különböző irányban folytatódott. A Theme Chooser a CyanogenMod Theme Engine-vé fejlődött, de a témaválasztási erőforrásokba fektetett több éves erőfeszítés ellenére a CMTE elavulttá vált. amikor más alternatívák bukkantak fel.


RRO & Layers

Az egyik alternatíva alapját akkor fektették le, amikor a Sony kód-hozzájárulása az új keretrendszer formájában elnevezett Futásidejű erőforrás-fedvény (RRO) felvették az AOSP-be. Ez a keretrendszer lehetővé teszi az alkalmazás erőforrásainak futás közbeni cseréjét (innen a név). A „fedvények” önmagukban jelen vannak és támogatottak az Androidon már a Gingerbread óta (és talán korábban is), elsősorban az erőforrások cseréjére használták, hogy az alkalmazások az adott területen működjenek eszköz. A Sony az RRO-val kapcsolatos megközelítése során az eszközkezelőt úgy módosította, hogy elfogadja az APK-kat, amelyek az eszközön meglévő más megfelelő erőforrásokhoz társított erőforrásokat használtak. Ezek az apk-ból származó új erőforrások csak futásidőben kerültek az alaperőforrásokra, így a rendszer úgy működött együtt, mintha ezek az új erőforrások mindig is a részei lettek volna.

Az RRO-keretrendszert a Lollipop 5.0 nyilvánosságra hozatala előtt egyesítették az AOSP-vel, de az 5.0 kezdeti buildjeinél a keretrendszer egyes részei más változtatások miatt megszakadtak. Az Android 6.0 Marshmallow fejlesztői előnézetei voltak az elsők, amelyek funkcionális, bár korlátozott RRO keretrendszert adtak hozzá, megnyitva a testreszabhatóság kapuit közvetlenül a készlet Android szinten. Tehát, hacsak egy OEM szándékosan nem próbált eltérni a készlet Android-témáitól, bizonyos meg lehetne őrizni a konzisztencia szintjét a „témák” megvalósításának megközelítésében Android.

Miközben az AOSP az RRO-val játszadozott, és azt kereste, hogy miként lehetne a legjobban beépíteni mindezt, egy fejlesztőcsapat ún. BitSyko nevű közös erőfeszítésen dolgoztak együttRétegek". A rétegek kibővítették az Android 5.1 Lollipop készlet RRO funkcióját, hogy összetettebb erőforrás-váltást tegyenek lehetővé, és több elemvezérlést tegyenek lehetővé a témákhoz, mint amennyi az RRO-val lehetséges. Mivel a Layers felfelé épült az RRO-ra, a ROM-gyártóknak extra kódot kellett hozzáadniuk, hogy engedélyezzék a Layers funkciót a ROM-jukban, mivel nem minden Layers téma működik a Marshmallow-ban található RRO-n.

Eközben a Sony saját erőfeszítéseivel az Android-téma felé vonult tovább. Elkezdett dolgozni OMS (Overlay Manager szolgáltatás), a lefedések kezelésére szolgáló kliens, amely lehetővé teszi a szolgáltatók számára a prioritások dinamikus szabályozását, valamint a lefedések engedélyezését és letiltását. Az OMS-t egyesítik az AOSP-vel, és az Android O-ba is bekerül. XDA elismert fejlesztő nicholaschum forrásai révén megerősítette, hogy az Android O „dinamikus átfedéseket” fog tartalmazni, amelyekről úgy gondolják, hogy az OMS-re utalnak.

Az OMS konfliktusokat okozott a rétegekkel, mivel az ilyen funkciók hagyományosan a téma irányítása alatt voltak. Az OMS által felvetett problémák kezelése, valamint a Layers funkcióinak bővítése érdekében a BitSyko ismét összeállt (és átnevezte magát [projekt.]) készíteni Altalaj. A Substratum egy OMS-funkcióval rendelkező ügyfél amely megpróbálja összeegyeztetni a Layers funkcionalitását az OMS-sel, és más elemeket is kölcsönvesz más korábbi témájú megoldásokból. A fedvények többé nem voltak átfedve egymásra az egyes elemek témájához, mivel most az összes szükséges elemet egyetlen fedvénybe fecskendezték be. Az olyan funkciók, mint az eszközön fordítás lehetővé tették a témák alkalmazását anélkül, hogy a változtatások között újra kellett volna indítani, így szignifikánsan a végfelhasználók könnyebben kipróbálhatják a témákat és kísérletezhetnek. A Substratum a kezdetek óta aktív fejlesztés alatt áll, és felsorolja minden funkcióját és A hozzáadott funkciók nem tartoznak a cikk hatókörébe, ezért továbbtérünk ennek a tárgyára darab.


Aljzat a Sungstratumba

Amint az előző szakaszban kifejtettük, a Substratum a készlet OMS funkcióinak, valamint a készlet RRO funkcióinak kiterjesztésének egyik módja volt (a rétegeken keresztül). A szubsztrátumot AOSP-alapú ROM-ok mellett tervezték használni, mivel a legtöbb más OEM ellentmondó változtatásokat hajtott volna végre. amely nem teszi lehetővé, hogy a Substratum a módosításaikkal együtt létezzen egy szerkesztett UX felületen, például a Samsung esetében példa.

A Samsung maga is dolgozott egy tematikus megoldáson, amelyet a Nougat saját eszközei között használhat. A Sony-val ellentétben a Samsung nem mutatott érdeklődést a témakód visszaküldése iránt az AOSP-nek. De mivel a Samsung megoldása meglehetősen egyszerű volt, az AOSP nem igazán veszített sokat. A Samsung Touchwizbe sütött témamegoldása a Samsung Galaxy S6-on jelent meg igaziból, de mint említettük, meglehetősen korlátozott volt abban, hogy mit tudott elérni. Ezt megelőzően korlátozott kísérletek folytak a Galaxy Alpha-val, bár a legtöbb rendszer UI eleme kívül esett a hatókörén. A témák megváltoztathatják a háttérképeket és az ikonokat, valamint néhány Samsung-alkalmazást, például a tárcsázót, a névjegyeket, az üzeneteket és az értesítési területet.

Mint kiderült, a Samsung tematikus motorja kiterjed Az AOSP-ben található RRO. A Samsung az RRO kiterjesztése után újra létrehozta saját belső OMS-verzióját, így az RRO és az OMS megvalósítása eltér az AOSP-től. De meglepő módon nem túl nagy mennyiségben -- rendellenes viselkedés, ha figyelembe vesszük a Touchwiz különlegességét és összetettségét. Az újabb Samsung zászlóshajókat használó kutatók arról számoltak be, hogy telepíthetnek RRO-fedvényeket, és harmadik féltől származó alkalmazásokat témázhatnak velük.

Ez volt az a jelzés, amelyre a [projekt.] csapatnak szüksége volt, hogy megvizsgálja a Samsung eszközök hivatalos támogatását a Substratumon. A csapat egy kis mennyiségű kódot konvertált az alkalmazásuk RRO/Legacy részéből, de ahelyett root kérve és újraindítást kérve konkrét szándékokat indítottak el, hogy az átfedések telepítve legyenek. A csapat ezután azon dolgozott, hogy a témákon keresztül érintett alkalmazások kényszerített bezárásra kerüljenek a háttérben, hogy a következő indításkor teljes körűen frissüljön az eszköz.

Megkérdeztük az XDA Recognized Developert nicholaschum hogy betekintést nyújtsunk a kihívásokba, amelyekkel a csapatnak szembe kell néznie, amikor a Samsung zárt forráskódú RRO-OMS megvalósítása ellen dolgozott:

A kihívások, amelyekkel szembesültünk, meglehetősen homályosak voltak, és sokak számára ismeretlenek voltak, akik nem rendelkeznek túl sok tudással témarendszerek megértése, legyen az nyílt vagy zárt forráskódú – mindennek megvan a maga próbaverziója és hibafázis. Ebben az esetben a Samsunggal együttműködve sok problémába botlottam, de a legfontosabb az, hogy a rendszer szándéka nem a telepítés befejezése után átfedésekre lőtték ki – például a műsorszóró vevőkészülékek használatával „android.intent.action. PACKAGE_ADDED” – a témaszolgáltatás megtagad mindent, ami nem része egy adott Samsung rendszeraláírásának témaszolgáltatási engedélyt kaptunk, így a legnehezebb rész az a megoldás, amelyre megoldást kellett találnunk körül.

A Substratumot a Samsung Theme Engine-je mellett ugyanazt a rendszert használjuk, mint ők. A Sony Resource Runtime Overlay rendszerének erősen módosított változatát használják, rövidítve RRO vagy örökölt néven a Substratum felhasználók körében. A különbség azonban az, hogy a Samsung témáknak van egy extra engedélye, amely elrejti ezeket a fedvényeket a Beállításokból, így nem távolíthatja el őket egyenként manuálisan. Ugyanazt a rendszert használjuk, de az AOSP/Sony implementációját használjuk, ezért a Samsung Themes teljes mértékben képes keretrendszert kialakítani, míg Az aljzatfedések nem érinthetnek meg olyan közvetítő célpontot, amely nem létezik „fwk” – mint tudjuk, hogy a keretrendszer csak „android” csomag név.

Furcsának tűnt, hogy a [projekt.] viszonylag könnyedén tudott együtt dolgozni a Samsung RRO implementációjával. Bárki, aki valaha is dolgozott Samsung készülékeken, tanúsíthatja, hogy a Samsung gyakran megnehezíti a dolgokat. Érdeklődtünk minden konkrét blokk után, amellyel a csapat találkozott a portolása során:

Valóban létezik valamilyen biztonsági mechanizmus, amely néhány felhasználót érintett – ahol az átfedések indításkor visszaállnak. Ez annak köszönhető, ahogyan a Samsung elindítja a készülékét. Mivel legtöbben a TouchWiz/Samsung Experience 7.0-s verzióját használjuk, az „alkalmazások optimalizálásának” új módszerét használjuk (ezt láthatja, amikor frissíti a telefont, értesítést jelenít meg az Android Nougat ikonnal, mondván, hogy a háttérben frissít), így az alkalmazások optimalizálásának ez a módja a célt is eltávolítja. csomagokat, ami végül megzavarja az idmapping folyamatot a rendszerindításkor (a nem létező célcsomag miatt), és így néhány ember fedvénykitöltést tapasztal egy újraindítás.

Ezt néhány Samsung témánál is láthatja, különösen @envy~ sötét/fekete témájával – ő a Megjelenítés -> Navigációs sáv alapértelmezett navigációs sáv színét feketére állítja, ahol a tényleges alapértelmezett szín található fehér. A feketére állítás után kinyithatja a billentyűzetet, és a navigációs sáv fekete marad. Ez sok eszközön véletlenszerűen visszaáll újraindításkor.

Miközben a tematika újra előtérbe kerül, milyen tervei vannak a Substratumnak az olyan mellékágakon, mint a Sungstratum?

Továbbra is egy kis kis alkalmazást egyesítünk a kiegészítőnkbe jelenlegi felhasználóinknak, hogy megteszik le tudja állítani a Samsung Theme Service szolgáltatást, ha az eszközére telepített összes téma telepítve van XDA. Tehát azok az emberek, akik Samsung-téma formázott témákat fognak használni az XDA-tól, használhatják majd a kiegészítőt, hogy megakadályozzák A Samsung szolgáltatása nem állítja vissza a stock témát minden újraindítás után (mivel nem a Samsung áruházból telepítették hivatalosan). Ehhez ingyenes Samsung fejlesztői kulcsra lesz szükség, amely a webhelyükről szerezhető be, de előzetesen a Sungstratum addon letöltésével együtt lesz elérhető.


Az AOSP és az Android O közelmúltbeli és közelgő változásai miatt úgy tűnik, hogy a Google egykor induló operációs rendszere még több személyre szabottságot fog átadni a felhasználóknak. Egyes OEM-ek még azt is tervezik, hogy megszabadulnak egyéni felhasználói felületeiktől és UX-kiegészítőiktől az AOSP javára, és mások, mint a Samsung, elég közel lebegnek saját tematikus megoldásaikkal. Olyan jövőt képzelünk el, ahol a témák még több ember felhasználói élményében játszanak fontos szerepet – egy operációs rendszert ahol valóban Ön szabályozhatja, hogyan nézzen ki eszköze, és hol van a felhasználói felület esztétikája az Ön számára testreszabott te. És nem tudnánk elérni egy ilyen jövőt ennek a fantasztikus közösségnek a kollektív ereje és az olyan projektek nélkül, mint a Substratum.


Tekintse meg a Samsung Nougat szubsztrátumintegrációját a Substratum fórumain!Aljzat a GitHubon