Objašnjenje Xposed okvira za podmodule Nougat & abforce

U ovom članku istražujemo razlike između nadolazećeg izdanja rovo89 Xposed za Nougat i trenutne implementacije koja je dostupna za Nougat.

Okvir Xposed bio je - i još uvijek jest - glavni način za prilagodbu vašeg Android uređaja, kompatibilan s gotovo svim uređajima, omogućujući vam jednostavno instaliranje modula za podešavanje gotovo svih detalja.

Želite li dobiti sve značajke koje nudi prilagođeni ROM bez potrebe za fleširanjem?GravityBox iliXTouchwiz učinit će to. Želite li podesiti određene postavke za svaku aplikaciju, poput promjene DPI-ja određene aplikacije?Postavke aplikacije jesi li pokriven. Voljeli bismo da su se programeri aplikacije dosjetili dodavanja određene značajke, kao što vam to Google dopuštapersonalizirati Hangouts ili Facebook koji vam to omogućujepreuzmite Instagram objave koje vam se sviđaju? Pa, ne morate jer Xposed daje programerima moć da modificiraju gotovo sve što žele bilo da se radi o značajci za cijeli sustav koja bi zahtijevala prilagođeni ROM ili podešavanje za određeni primjena.

Okvir Xposed dolazi s velikom prednošću za programere, a to je jednostavnost razvoja (u usporedbi s kompajliranjem AOSP-a za podešavanja ROM-a ili uređivanjem Smali koda). Također donosi veliku prednost za korisnike: pogodnost, budući da ih više ne tjera da pronađu i fleširaju ROM koji pruža svaku značajku koju traže (umjesto toga, mogu miješati i spajati neovisne module) povrh svoje ciljne ravnoteže stabilnosti i izvođenje. Također čini aplikacije za ugađanje puno lakše jer nema potrebe za rješavanjem različitih potpisa, što bi kao rezultat zahtijevalo od korisnika da deinstaliraju izvorni verziju ili skakanje kroz određene obruče kada aplikacija provjerava svoj potpis (nešto s čime se modificirani YouTube klijenti bave, za primjer).

Jedini problem? Zbog svoje prirode i količine slobodnog vremena Xposedov programer (naš vlastiti Senior Recognised Developer,rovo89) ima, često zaostaje za izdanjima Androida.Bilo je potrebno oko četiri mjeseca da se ažurira kako bi podržao Lollipop, i potrebno je otprilike godinu dana da dođemo u Nougat. Ovo nije tako loše kao što se može činiti ako bolje razmislite koliko korisnika Androida zapravo koristi Nougat (oko 13,5%, iako imajte na umu da će ljubitelji Androida, ciljna publika Xposeda, također vjerojatnije koristiti Nougat). Međutim, još uvijek može biti prilično neugodno ne moći koristiti svoje omiljene module Xposed i istovremeno imati najnoviju i najbolju verziju Androida.

Budući da je izvorni kod okvira Xposed dostupan (barem za stabilne, objavljene verzije), programerabforce odlučio zaprljati ruke i vidjeti može li prenijeti neke od rovo89 modifikacija na Nougat. Odlučivši se za drugačiji i jednostavniji pristup, abforce je u biti prilagodio dio Xposeda koji zapravo čini magiju nakon instaliranja i omogućio je uključivanje pri kompajliranju vlastitog ROM-a (nakon toga, pojavila su se i druga rješenja). Ovaj je pristup nedvojbeno vrlo različit budući da zanemaruje jednu od temeljnih prednosti Xposeda, a to je lakoća dostupnosti svima. Međutim, svaki napredak je dobrodošao i višestruko rješavanje zadatka može biti korisno i ponuditi novi uvid. Glavni problem, kako mi to vidimo, su dezinformacije koje okružuju ovaj razvoj (koje šire neki drugi "developeri" i neki blogovi), kao i neke od reakcija zajednice. Nadamo se da će ovaj članak cijelu sliku učiniti jasnijom.


Prije svega, kako bismo razumjeli posao koji je ušao -- i još uvijek ide -- u službeni Xposed framework kao i abforceovu verziju, moramo pogledati kako okvir funkcionira. Dok sam okvir jest samo dio projekta, obično mislimo i na framework i na instalater budući da okvir gubi mnoge od svojih prednosti bez univerzalnog instalacijskog programa, na koji je također potrebno mnogo posla.

Snaga Xposed-a proizlazi iz jednostavnog koncepta: svaka se metoda može "zakačiti" (metode su male dijelovi koji čine bilo koji program) kako bi se kod modula Xposed izvršio prije, poslije ili umjesto to. Uzmimo jednostavan primjer: pretpostavimo da Instagram koristi metodu pod nazivom "showMenuOptions" kada kliknete gumb izbornika, a ta metoda upravlja prikazivanjem gumba "Prijavi" i "Podijeli". Stvaranjem modula Xposed možete modificirati tu metodu da biste dodali dodatni gumb za preuzimanje slike umjesto njezinog dijeljenja, na primjer. Izmjene mogu varirati od jednostavnih podešavanja (npr. Dnevnik promjena Trgovine Play) do velikih remonta (kao što je GravityBox, čiji je cilj pružiti sve značajke koje bi imao prilagođeni ROM)!

To Xposed čini moćnim, ali to je samo dio jednadžbe. Ostali dijelovi su svestranost -- ili zapravo mogućnost korištenja Xposed-a na gotovo svim uređajima (s podržanom verzijom Androida) i jednostavnost korištenja. Sve što korisnici trebaju učiniti je preuzeti instalacijski program, koji čini svoju čaroliju i dinamički krpa njihov sustav kako bi integrirao Xposed. Da biste primijenili modul, samo ga trebate instalirati, omogućiti i ponovno pokrenuti sustav. Nema potrebe za mukom, nema potrebe za fleširanjem prilagođenog ROM-a (pogotovo kada prilagođeni ROM-ovi nisu uvijek održiv izbor), nema potrebe za deinstalacijom APK-a da biste instalirali drugi potpisan drugačijim potpisom. Sve što trebate je root (apsolutno možete imati prilagođeni ROM i to ima smisla puno vremena; ali iako Xposed može pružiti većinu funkcionalnosti koje može pružiti prilagođeni ROM, on također nadilazi to).

No, iza ove jednostavnosti stoji puno rada:

  1. Za programere modula, dostavljeni API mora biti stabilan i zajamčeno raditi. Okvir Xposed ne može nasumično otkazati s određenim kombinacijama ROM-a i/ili kuke (osim u iznimnim slučajevima). Drugim riječima, ako korisnik ima problem, taj bi problem trebao biti ili korisnikova krivnja (za ne instalacija/omogućavanje nečega ispravno) ili greška programera modula (zbog grešaka u modul). Ali trebalo bi biti gotovo sigurno da sam okvir radi kako je predviđeno i da nije izvor pogrešaka koje bi frustrirali korisnike i zbunili programere.
  2. Za korisnike, framework mora biti jednostavan za instalaciju na njihov uređaj i ROM, bez obzira na to imaju li Samsung s najnovijom verzijom TouchWiza ili Nexus s instaliranim LineageOS-om. Xposed instalacijski program rješava sve to iza scene. U ovo treba uložiti puno rada kako bi se instalacijski program i okvir testirali na raznim uređajima i kombinacijama ROM-a. Pogreške se pronađu, često zbog različitih implementacija OEM-a, i moraju se popraviti kako bi se osigurala pouzdanost za sve korisnike.
  3. Velike revizije Androida ponekad mogu donijeti velike promjene, što zahtijeva ponovno promišljanje dijelova arhitekture okvira kako bi se prilagodili tim promjenama. Ponekad se dodatne prilike pojavljuju i s novijim verzijama, što zahtijeva dodatno vrijeme za bolji proizvod. Na primjer, kada je ART prvi put predstavljen, Xposed je onemogućio određene optimizacije kako bi povezivanje moglo ispravno funkcionirati. U Nougatovom slučaju,Just-in-Time (JIT) prevodilac donosi priliku zazadržati te optimizacije.

Velik dio gore navedenog rada ide u manje detalje, gdje većina okvira funkcionira kako je predviđeno, ali nedosljednosti i manji problemi učinili bi ga kockanjem za korisnike, a podršku i razvojnu noćnu moru za modul programeri. Izdani proizvod, međutim, nastoji ga koristiti svi i bez iznenađenja. Postoje neke iznimke, naravno, jer neke promjene OEM-a zahtijevaju više truda da bi se prilagodile, ali one manje su i velika većina korisnika (i programera) može uživati ​​u stabilnom i pouzdanom Xposedu iskustvo. Sve iznimke koje se pojave se dokumentirajujasna odricanja od odgovornosti da se nitko ne čudi.

Imajući gore navedeno na umu, vizija rovo89 za Xposed je da bude stabilno rješenje koje pruža pouzdan i jednostavan za korištenje ugovor za korisnike i programere. Njegova je filozofija, iako se s njom možda ne slažete, jednostavna i razumljiva: proizvod treba biti pušta se kada je spreman za upotrebu prema namjeri, budući da puštanje prije toga dovodi do više problema nego koristi.


abforceov podmodul Xposed ART za Nougat

Nerado nazivamo rad abforcea "portom" ili "neslužbenim Xposedom" jer je to netočno i pogrešno. Kao što smo vidjeli, Xposed ima dvije glavne komponente:

  1. Srž samog okvira Xposed, koji upravlja magijom metoda povezivanja.
  2. Xposed instalacijski program, koji osigurava da se okvir jednostavno ispravno instalira na svim uređajima.

Ono što je abforce učinio je prijenos rovo89 Marshmallow koda na prvom dijelu (samo okvir Xposed) na Nougat, na način koji bi zahtijevao da se promjene peku tijekom kompajliranja prilagođenog ROM-a. Uz to, mnogi manji (ali važni) dijelovi okvira nisu u potpunosti prilagođeni Nougatu. Kao takvo, ponašanje može biti nedosljedno i iako uglavnom funkcionira (iako nezasvatko), nije pouzdano. Za programere i korisnike modula, oslanjanje na nepotpunu i nedosljednu implementaciju bilo bi opravdano pružiti loše iskustvo za sve uključene strane, sa neki moduli uopće ne rade ili uzrokuju da se uređaj ne pokrene. Iako bi mnogim korisnicima možda odgovaralo imati nešto prije nego ništa, stajalište programera i dalje je savršeno razumljivo (posebno ako imate na umu da odricanje od odgovornosti ne zaustavlja lažna pitanja podrške i kuknjavu).

(Pored gore navedene dvije glavne točke, također ćemo očekivati ​​daljnje promjene konačnog, službenog okvira Xposed kako bismo iskoristili promjene uvedene u Nougatu.)

Treba napomenuti da je abforce napravio izvrstan posao kada se većina zadovoljila samo razgovorom, ali njegov je rad daleko od potpunog Xposed iskustva i niti jedan razvojni programer ili blog ne tvrdi drugačije (i definitivno ne abforce; opet, nemamo ništa osim poštovanja prema svim stvarnim programerima koji u ovo ulažu pravi rad i trud). Zapravo, kao što ćemo se malo dotaknuti toga, dio odgovora zajednice (bilo da se radi o korisnicima ili "programerima") jedini je loš dio u ovom lancu razvoja.


Prekinimo jurnjavu i prijeđimo ravno na stvar: svaka zajednica ima loše elemente i aspekte. S tako velikom zajednicom kao što su entuzijasti za Android, loši elementi mogu izgledati kao veliki udio iako su samo mali dio (veliki, ali još uvijek manji u relativnom smislu). Međutim, bez dodavanja šećera, veći dio odgovora zajednice na razvoj Xposed za Nougat bio je krajnje djetinjast, bezobziran ili neodgovoran.

Prvi veliki problem bio je snishodljiv stav koji su mnogi pokazali o "smrti Xposeda" jer je trebalo predugo da se objavi za Nougat. Ovo je unatoč rovo89-u nadopuneiuvjeravanja, i unatoč prilično točnom scenariju koji se dogodio s Lollipopom kada je predstavljena početna verzija ART-a. U redu je prestati koristiti Xposed, ali to nije vrijeđanje ničije sposobnosti ili napadanje drugih zbog drugačije filozofije ili zbog toga što ne osiguravaju da su vaše potrebe za bljeskanjem odmah zadovoljene. Ovo još više vrijedi za potpuno besplatan projekt, gdje je programer izrazio svoju razvojnu metodologiju i razloge koji stoje iza nje.

Drugi problem s odgovorom zajednice bilo je nerazumijevanje prirode rada abforcea, pri čemu su ga mnogi hvalili kao novi Xposed ili ga reklamirali kao luku za Nougat. Veliki problem u vezi s tim bio je s "programerima" koji žure ponuditi flashable verzije bez razumijevanja (ili brige za) nedostatke, budući da nije bilo odricanja od odgovornosti uopće se nudi u nekim temama, a neki čak idu toliko daleko da zaslužuju abforce, a ne rovo89 (koji stoji iza velike većine rada na Xposedu) i druge suradnici.

Kao posljednja točka, smatramo da bismo trebali ponovno spomenuti razvojnu filozofiju rovo89. Mnogi glasni korisnici tvrde da bi bilo korisno imati najnovije promjene otvorenog koda. Iako ovo zvuči dobro u teoriji, jestnije tako lako u praksi pogotovo ako uzmemo u obzir objašnjenje rovo89:

[...] Vjerujem da samo izbacivanje postojećeg stanja ne bi pomoglo projektu. Možda bismo vidjeli "neko" izdanje jako brzo od strane ljudi koji sastavljaju kod, vidimo da se čini da jest rade dobro i objavljuju ga kao "svoju luku", unatoč problemima i stvarima kojih ne bi bili svjesni od. Dakle, nazovite me sebičnim, ali ne bih želio vidjeti tako poludovršeno izdanje.[Izvor]

Što se zapravo pokazalo kao prilično dobro predviđanje trenutne situacije, s nekoliko prijavljenih "developera". abforceove promjene i nudi flashable ZIP s minimalnim ili nikakvim upozorenjima, nepotpunim kreditima, a sve dok se traži donacije.


Nadamo se da su ova objašnjenja razjasnila neke vaše nedoumice i riješila moguće pogrešne predodžbe koje ste možda imali. Xposed je bio nevjerojatan projekt koji je dosegao ogroman dio naše zajednice entuzijasta i flashaholičara, a Xposed za Nougat trebao bi biti još jedna gigantska prekretnica puna mogućnosti. S modulima kao što je GravityBox već nudi podršku za Nougat, gotov projekt rovo89 vratit će se nizu opcija.


Jeste li uzbuđeni zbog Xposed na vašem Nougat ROM-u? Javite nam u komentarima!