Selles artiklis uurime erinevusi rovo89 eelseisva Xposed for Nougat versiooni ja praeguse Nougati jaoks saadaoleva teostuse vahel.
Xposedi raamistik oli ja on endiselt peamine viis oma Android-seadme kohandamiseks, mis ühildub peaaegu kõigi seadmetega, võimaldades teil hõlpsalt installida mooduleid, et kohandada peaaegu kõiki detaile.
Kas soovite kasutada kõiki kohandatud ROM-i funktsioone, ilma et peaksite seda vilkuma?GravityBox võiXTouchwiz teeb seda. Kas soovite teatud seadeid rakendusepõhiselt kohandada, näiteks muuta konkreetse rakenduse DPI-d?Rakenduse seaded kas olete kaetud. Soovin, et rakenduse arendajad mõtleksid lisada konkreetse funktsiooni, näiteks Google'i lubamiseHangoutsi isikupärastada või Facebook, mis võimaldab teil seda tehalaadige alla teile meeldivad Instagrami postitused? Noh, te ei pea seda tegema, sest Xposed annab arendajatele õiguse muuta peaaegu kõike, mida nad teevad tahan, olgu see siis kogu süsteemi hõlmav funktsioon, mis nõuaks kohandatud ROM-i, või konkreetse näpunäide rakendus.
Xposedi raamistikul on arendajatele suur eelis, milleks on arendamise lihtsus (võrreldes sellega, et ROM-i näpunäidete jaoks tuleb AOSP kompileerida või Smali koodi redigeerida). See annab kasutajatele ka tohutu eelise: mugavus, kuna see ei sunni neid enam otsima ja välgutama ROM-i, mis pakub kõiki otsitavaid funktsioone (selle asemel saavad nad segada ja sobitada sõltumatuid mooduleid) lisaks nende stabiilsuse ja stabiilsuse tasakaalule esitus. See teeb ka rakenduste tutistamine palju lihtsam, kuna pole vaja tegeleda erinevate allkirjadega, mille tulemusena peaksid kasutajad originaali desinstallima versiooni või hüpata läbi teatud ringid, kui rakendus kontrollib oma allkirja (millegi muudetud YouTube'i kliendid tegelevad, näide).
Ainus probleem? Oma olemuse ja vaba aja hulga tõttu on Xposedi arendaja (meie enda tunnustatud vanemarendaja,rovo89), jääb see sageli Androidi väljalasetest maha.Lollipopi toe värskendamiseks kulus umbes neli kuud, ja Nougati jõudmiseks kulub umbes aasta. See polegi nii hull, kui võib tunduda, kui mõelda kui palju Androidi kasutajaid tegelikult Nougatis on (umbes 13,5%, kuigi pidage meeles, et Androidi entusiastid, Xposedi sihtrühm, on tõenäoliselt ka Nougatis). Siiski võib olla üsna tüütu, kui te ei saa kasutada oma lemmik Xposedi mooduleid ja teil on samal ajal uusim ja parim Androidi versioon.
Kui Xposedi raamistiku lähtekood on saadaval (vähemalt stabiilsete, välja antud versioonide jaoks), arendajaabforce otsustas oma käed mustaks teha ja vaadata, kas ta saaks mõne rovo89 modifikatsiooni Nougatile üle kanda. Valides teistsuguse ja lihtsama lähenemisviisi, kohandas abforce sisuliselt seda Xposedi osa, mis tegelikult oli teeb maagia pärast installimist ja võimaldas selle kaasata oma ROM-i kompileerimisel (pärast seda, ilmnesid muud lahendused). See lähenemine on vaieldamatult väga erinev kuna see eirab ühte Xposedi peamistest eelistest, mis on kõigile hõlpsasti kättesaadav. Kuid kõik edusammud on teretulnud ja ülesandega tegelemine võib olla kasulik ja pakkuda uut arusaama. Peamine probleem, nagu me seda näeme, on seda arengut ümbritsev valeinformatsioon (mida on levitanud mõned teised "arendajad" ja mõned ajaveebid), samuti mõned kogukonna reaktsioonid. Loodetavasti muudab see artikkel kogu pildi selgemaks.
Esiteks, selleks, et mõista ametlikku Xposedi raamistikku ja ka abforce'i versiooni tehtud tööd - ja läheb siiani, peame vaatama, kuidas raamistik töötab. Kuigi raamistik ise on vaid osa projektist, tavaliselt peame silmas nii raamistikku kui ka paigaldajat kuna raamistik kaotab paljud oma eelised ilma universaalse paigaldajata, mille kallal on samuti palju tööd.
Xposedi jõud tuleneb lihtsast kontseptsioonist: iga meetodi saab "konksu" külge panna (meetodid on väikesed osad, mis moodustavad mis tahes programmi), et Xposedi mooduli kood käivitataks enne, pärast või asemel seda. Võtame lihtsa näite: oletame, et Instagram kasutab menüünupul klõpsamisel meetodit nimega "showMenuOptions" ja see meetod näitab teile nuppe "Teata" ja "Jaga". Xposedi mooduli loomisel saate seda meetodit muuta, et lisada näiteks pildi jagamise asemel lisanupp pildi allalaadimiseks. Muudatused võivad ulatuda lihtsatest muudatustest (nt. Play poe muudatuste logi) kapitaalremonti (nt GravityBox, mille eesmärk on pakkuda kõiki kohandatud ROM-i funktsioone)!
See muudab Xposedi võimsaks, kuid see on vaid osa võrrandist. Teised osad on mitmekülgsus – või tegelikult võimalus kasutada Xposedi peaaegu igas seadmes (toetatud Androidi versiooniga) ja kasutusmugavust. Kasutajad peavad vaid haarama installeri, mis teeb oma võlu ja parandab nende süsteemi dünaamiliselt, et Xposed integreerida. Mooduli rakendamiseks peate selle lihtsalt installima, lubama ja taaskäivitama. Pole vaja askeldada, pole vaja kohandatud ROM-i välgutada (eriti kui kohandatud ROM-id pole alati mõistlik valik), pole vaja APK-d desinstallida, et installida teine, mis on allkirjastatud erineva allkirjaga. Kõik, mida vajate, on root (teil võib kindlasti olla kohandatud ROM ja see on sageli mõistlik; kuid kuigi Xposed suudab pakkuda enamikku kohandatud ROM-i funktsioonidest, läheb see ka kaugemale).
Selle lihtsuse taga on aga palju tööd:
- Moodulite arendajate jaoks peab pakutav API olema stabiilne ja garanteeritud, et see töötab. Xposedi raamistik ei saa teatud ROM-i ja/või konksukombinatsioonide korral juhuslikult ebaõnnestuda (välja arvatud erandjuhtudel). Teisisõnu, kui kasutajal on probleem, peaks see probleem olema kas kasutaja süü (mitte mitte millegi õigesti installimine/lubamine) või mooduli arendaja viga (vigade tõttu moodul). Kuid peaks olema peaaegu kindel, et raamistik ise töötab ettenähtud viisil ja see ei ole vigade allikas, mis jätaks kasutajad pettumuse ja arendajad segadusse.
- Kasutajate jaoks peab raamistik olema hõlpsasti seadmesse ja ROM-i installitav, olenemata sellest, kas neil on TouchWizi uusimat versiooni kasutav Samsung või installitud LineageOS-iga Nexus. Xposedi installer tegeleb kõige sellega kulisside taga. Sellega tuleb teha palju tööd, et testida installijat ja raamistikku mitmesugustes seadmetes ja ROM-i kombinatsioonides. Leitakse vigu, mis on sageli tingitud originaalseadmete tootjate erinevatest rakendustest, ja need tuleb parandada, et tagada kõigi kasutajate usaldusväärsus.
- Suuremad Androidi versioonid võivad mõnikord tuua kaasa suuri muudatusi, mis nõuab raamistiku arhitektuuri osade ümbermõtestamist, et nende muudatustega kohaneda. Mõnikord ilmnevad lisavõimalused ka uuemate versioonidega, mis nõuavad parema toote saamiseks lisaaega. Näiteks kui ART esmakordselt kasutusele võeti, keelas Xposed teatud optimeerimised, et haakimine saaks korralikult toimida. Nougati puhul onjust-in-time (JIT) kompilaator annab võimalusesäilitage need optimeerimised.
Suur osa ülaltoodud tööst läheb pisidetailideni, kus suurem osa raamistikust töötab ettenähtud viisil, kuid ebakõlad ja väikesed probleemid muudaksid selle kasutajatele hasartmänguks ning mooduli toetamise ja arendamise õudusunenägu arendajad. Välja lastud toote eesmärk on aga olla kõigile kasutatav ja üllatusteta. Muidugi on mõned erandid, kuna mõned originaalseadmete tootjate muudatused nõuavad rohkem pingutusi, et nendega kohaneda, kuid need on väikesed ja enamik kasutajaid (ja arendajaid) saavad nautida stabiilset ja usaldusväärset Xposed kogemusi. Kõik ilmnenud erandid dokumenteeritakseselged lahtiütlused et keegi ei imestaks.
Eelnevat silmas pidades on rovo89 nägemus Xposedist olla stabiilne lahendus, mis pakub kasutajatele ja arendajatele usaldusväärset ja hõlpsasti kasutatavat lepingut. Tema filosoofia, kuigi te sellega ei nõustu, on lihtne ja arusaadav: toode peab olema vabastatakse, kui see on ettenähtud kasutamiseks valmis, kuna selle enne vabastamine toob kaasa rohkem probleeme kui kasu.
abforce'i Xposed ART alammoodul Nougati jaoks
Me ei soovi abforce'i tööd nimetada "pordiks" või "mitteametlikuks Xposediks", kuna see on ebatäpne ja eksitav. Nagu nägime, on Xposedil kaks peamist komponenti:
- Xposedi raamistiku enda tuum, mis tegeleb haakimismeetodite võluga.
- Xposedi installer, mis tagab, et raamistikku on lihtne kõikidesse seadmetesse õigesti paigaldada.
Mida abforce tegi, porti rovo89 Marshmallow koodi esimeses osas (ainult Xposedi raamistik) Nougatile viisil, mis nõuaks kohandatud ROM-i kompileerimise ajal muudatuste tegemist. Lisaks ei ole paljud raamistiku väikesed (kuid olulised) osad Nougatiga täielikult kohandatud. Sellisena võib käitumine olla ebajärjekindel ja kuigi see enamasti töötab (kuigi mittejaokskõik), pole see usaldusväärne. Moodulite arendajatele ja kasutajatele oleks mittetäielikule ja ebajärjekindlale juurutamisele tuginemine lihtsalt pakkuda halba kogemust kõigile asjaosalistele, koos mõned moodulid ei tööta üldse või põhjustavad seadme käivitamise. Kuigi paljudele kasutajatele võib see sobida pigem midagi kui mitte midagi, on arendajate seisukoht endiselt täiesti arusaadav (eriti kui arvestada, et lahtiütlused ei peata võltsi tugiküsimusi ja virisemist).
(Lisaks ülaltoodud kahele peamisele punktile ootame ka täiendavaid muudatusi lõplikus ametlikus Xposedi raamistikus, et kasutada ära Nougatis tehtud muudatusi.)
Tuleb märkida, et abfor tegi suurepärast tööd, kui enamik oli rahul lihtsalt rääkimisega, kuid tema töö pole kaugeltki täielik Xposedi kogemus ja ükski arendaja ega ajaveebi ei väida vastupidist (ja kindlasti mitte abforce; Jällegi pole meil muud kui austust kõigi tegelike arendajate vastu, kes selle nimel tõelist tööd ja vaeva näevad). Tegelikult, nagu me veidi hiljem puudutame, on osa kogukonna vastustest (olgu need kasutajad või "arendajad") ainus hapu osa selles arenguahelas.
Lõikame tagaajamise läbi ja asume otse asja juurde: igal kogukonnal on halbu elemente ja aspekte. Kuna tegemist on nii suure kogukonnaga kui Androidi entusiastid, võivad halvad elemendid tunduda tohutu osana, kui need on vaid väike osa (suur, kuid siiski suhteliselt väike). Ilma suhkrukatteta on aga suur osa kogukonna reaktsioonist Xposed for Nougati arendamisele olnud äärmiselt lapsik, hoolimatu või vastutustundetu.
Esimene suurem probleem on olnud paljude poolt „Xposedi surma” suhtes üles näidatud halvustav suhtumine, kuna selle Nougati jaoks vabastamine võtab liiga kaua aega. Seda hoolimata rovo89-st uuendusedjatagatised, ja vaatamata sellele, et ART esialgne versioon tutvustati Lollipopi puhul üsna täpselt. Xposedi kasutamise lõpetamine on hea, kuid sellega ei tohi solvata kellegi võimeid ega rünnata teisi selle eest, et neil on teistsugune filosoofia või see ei taga teie vilkuvate vajaduste kohest täitmist. Veelgi enam kehtib see täiesti tasuta projekti kohta, kus arendaja on väljendanud oma arendusmetoodikat ja selle taga olevaid põhjuseid.
Teine probleem kogukonna reageerimisel on olnud abforce'i töö olemuse valesti mõistmine, kuna paljud nimetavad seda uueks Xposediks või reklaamivad seda kui Nougati sadamat. Sellega seoses on suureks probleemiks olnud "arendajad", kes tormavad pakkuma välgutatavaid versioone, mõistmata (või hoolimata) puudustest, kuna lahtiütlemisi ei olnud mõnedes lõimedes üldse pakutud, mõned lähevad isegi nii kaugele, et krediiti abforce'i, mitte rovo89 (kes on enamiku Xposedi töö taga) ja teised kaastöölised.
Viimase punktina leiame, et peaksime rovo89 arendusfilosoofia uuesti esile tooma. Paljud häälekas kasutajad väidavad, et viimaste muudatuste kasutamine avatud lähtekoodiga oleks kasulik. Kuigi see kõlab teoreetiliselt hästi, on see niipraktikas pole nii lihtne eriti kui arvestada rovo89 selgitust:
[...] Usun, et pelgalt praeguse seisu väljatõukamine ei aitaks projekti kaasa. Võib-olla näeksime, et inimesed, kes koodi koostavad, vabastavad "mõned" väga kiiresti, vaatame, et see tundub olevat töötab hästi ja avaldab selle "oma sadamana", hoolimata probleemidest ja asjadest, mida nad ei teadnud kohta. Nii et nimetage mind isekaks, aga ma ei tahaks sellist poolik väljalaset näha.[Allikas]
Mis on tegelikult osutunud üsna heaks ennustuseks praegusele olukorrale, kusjuures mitu "arendajat" on kandideerinud abforce'i muudatusi ja pakkudes välkuvat ZIP-vormingut minimaalsete hoiatustega või ilma hoiatusteta, mittetäielike tiitritega, küsides samal ajal annetused.
Loodame, et need selgitused lahendasid mõned teie kahtlused ja käsitlesid võimalikke väärarusaamu. Xposed on olnud hämmastav projekt, mis on jõudnud suure osani meie entusiastide ja flashahooliku kogukonnast ning Xposed for Nougat peaks olema veel üks hiiglaslik verstapost, mis on täis võimalusi. Moodulitega nagu GravityBox pakkudes juba Nougati tuge, naaseb rovo89 valmis projekt paljude valikute juurde.
Kas olete põnevil Xposedist oma Nougat ROM-il? Anna meile kommentaarides teada!