Po ilgo laukimo „Xposed Framework“ kūrėjas oficialiai paskelbė, kad projektas dabar palaiko „Android Nougat“. Įdiekite Xposed modulius dabar!
Bėgant metams „Android“ ekosistemai tobulėjant, vis mažiau vartotojų randa priežasčių, kodėl jie turėtų išjungti savo įrenginį. Auga tendencija, kai vartotojai pasirenka naudoti atsarginę programinę-aparatinę įrangą dėl to, kad jų patirtis yra patenkinama, arba dėl to, kad jie nenori žaisti katės ir pelės žaidimas su „Google SafetyNet“ API. Bet jei 2016 m. pradžioje paklaustumėte vartotojo, kodėl jis įsišaknijo savo telefonuose, galbūt pagrindinė priežastis, kuri buvo nurodyta, buvo ta, kad įdiegti Xposed Framework. Tai buvo daugiau nei metai nuo Android 7.0 Nougat pirmą kartą buvo išleistas, bet ilgas laukimas pagaliau baigėsi: Pagaliau pasiekiamas oficialus „Xposed Framework“, skirtas „Android Nougat“.
Per pastaruosius metus XDA vyresnysis pripažintas kūrėjas rovo89, pateikė pagrindinis Xposed Framework kūrėjas kelisatnaujinimus apie Xposed Framework for Android Nougat pažangą. Kai kuriems,
laukti buvo pakenčiama daugiausia dėl daugybės papildomų funkcijų, kurias siūlo Xposed Framework Android Marshmallow. Tačiau daugelis kitų perėjo prie gyvenimo be Xposed savo įrenginiuose.Matėme, kad projekte atsinaujino jaudulys, kai kūrėjas abforce išleido an ART submodulis, skirtas AOSP 7.1.2, bet kaip nurodo mūsų pačių GermainZ jums buvo geriau laukti oficialaus Xposed Framework Išleidimas, nes abfor įgyvendinimas reikalauja, kad sistema būtų integruota į pasirinktinius ROM. Be to, šis neoficialus įgyvendinimas buvo neišsamus, todėl su tam tikru Xposed elgesys buvo nenuoseklus arba klaidingas Moduliai.
Nors abfortas puikiai atliko savo neoficialųjį „Xposed“ darbą su „Android 7.1 Nougat“, jo diegimas prieštarauja rovo89 vizija dėl Xposed – kad tai turėtų būti stabilus sprendimas, užtikrinantis patikimą ir lengvai naudojamą sutartį vartotojams ir kūrėjams panašiai. Turime omenyje tai, kad ne tik moduliai turėtų veikti be problemų vartotojams, bet ir modulių nustatymo būdas naudotojai turėtų būti nuoseklūs, kad kūrėjai žinotų, ar Xposed modulis yra kaltas dėl programos. avarija.
Mums nebereikia jaudintis dėl tokių problemų kaip rovo89 (po tam tikros pagalbos iš XDA Recognized Developer wanam) dabar yra pasirengęs išleisti oficialų Xposed Framework ir diegimo programos naujinį suderinamumas su Android 7.0/7.1 Nougat. Tai reiškia, kad jums nereikės diegti pasirinktinės ROM arba tvarkytis su mirksinčiomis nestabiliomis versijomis mėgaukitės „Xposed“ – tiesiog įsigykite savo telefoną ir įdiekite naujausią „Xposed Installer“ programą (nuoroda žemiau) ir į „Xposed Installer“ įdiegs „Xposed“ už jus.
„Xposed“ diegimo programa, naršanti modulio saugykloje
Kai kam tai gali atrodyti šiek tiek pavėluotai, ypač dėl to, kad šis leidimas pasirodo praėjus daugiau nei mėnesiui po „Android 8.0 Oreo“ išleidimo. Atminkite, kad labai nedaugelis įrenginių turės prieigą prie stabilios „Android Oreo“ versijos daugelį mėnesių. Android Oreo yra tik ant 0.2% visų Android įrenginių (palyginti su ~18 % „Nougat“), remiantis naujausia „Google“ statistika, tačiau daugelis mūsų vartotojų yra tokie, kurie mėgsta įdiegti pasirinktinius ROM, kad liktų nepaprastoje vietoje.
Net jei įdiegiate neoficialus „Android 8.0“ prievadas galima rasti daugybėje įrenginių mūsų forumuose, daugelis šių prievadų nėra kasdienės tvarkyklės būsenos. Taigi, nebent esate pasirengę pakloti šimtus dolerių už visiškai naują „Google Pixel 2/2 XL“, Kompaktiškas Sony Xperia XZ1/XZ1, arba būsimas įrenginys, pvz., Huawei Mate 10, tada tikriausiai galėsite išnaudoti kelis mėnesius iš „Xposed Framework“ sistemoje „Android Nougat“.
Jei tai atrodo kaip jūs, eikite į oficialią forumo giją, skirtą „Xposed Installer“ ir „frame“ užtrauktui, kad jis būtų paleistas ir veiktų „Android Nougat“ įrenginyje.
Atsisiųsti Xposed Installer v3.1.2 (priedas)
Atsisiųskite „Xposed Installer“, skirtą „Nougat 7.0“ (SDK24).
Atsisiųskite „Xposed Installer“, skirtą „Nougat 7.1“ (SDK25).
Daugeliui naujesnių vartotojų, kurie nėra gerai susipažinę su tuo, kam gali būti naudojamas Xposed Framework arba kaip jis veikia, mes toliau trumpai paaiškins Xposed Framework, kodėl turėtumėte jaudintis ir kodėl jos kūrimas užtruko tiek padarė.
Kodėl reikia įdiegti Xposed Framework?
Norite gauti pasirinktines ROM funkcijas nemirksėdami pasirinktinio ROM? Visų Xposed modulių, skirtų jūsų ROM koregavimui, motina, žinoma kaip GravityBox, ar apėmėte. Norite tinkinti ekrano nustatymus kiekvienai programai? Bandyti Programos nustatymai. Kaip pritaikyti tam tikras programas, pvz „Hangout“? Arba modifikuokite „Instagram“, kad galėtumėte atsisiųskite bet kokius jums patinkančius įrašus?
„Xposed“ suteikia kūrėjams galimybę modifikuoti beveik ką tik nori– daugiausia skirta atskiroms programoms, tačiau galima keisti net visos sistemos funkcijas. Mūsų išvardyti pavyzdžiai yra tik ledkalnio viršūnė. Papildomų funkcijų, kurias galite pridėti, arba programų, kurias galite keisti, skaičius yra neįtikėtinas – tiesiog ieškokite oficiali Xposed modulio saugykla kad pamatytumėte patys. Atminkite, kad kai kuriuos modulius gali tekti atnaujinti, kad būtų galima naudoti šią naują laidą ir „Nougat“ palaikymą, todėl būtinai patikrinkite prieš diegdami juos savo „Nougat“ ROM!
Kaip veikia Xposed moduliai?
Esmė ta, kad „Xposed Framework“ leidžia moduliams „prisikabinti“ prie bet kurios programos „Java“ metodų– ar tai būtų vartotojo įdiegta, ar sistemos programa. Xposed leidžia moduliams vykdyti savo metodus prieš, per arba vietoje originalūs tikslinės programos metodai.
Pavyzdžiui, įsivaizduokite metodą, naudojamą „Gmail“ programoje, kuri skelbia pranešimus apie naujus el. laiškus. Pagal numatytuosius nustatymus šis metodas sukuria naują pranešimą su mygtukais archyvuoti / ištrinti arba atsakyti į el. laišką. „Xposed“ modulis gali būti prijungtas prie šio metodo ir pridėti naują mygtuką, pvz., „žymėti kaip skaitytą“. (Taip, yra jau yra tam skirtas modulis.)
Aukščiau yra pernelyg supaprastintas galutinis rezultatas to, ką Xposed Framework leidžia savo moduliams. Pati „Framework“ yra neįtikėtinai sudėtinga, todėl ji veikia beveik visuotinai įsišaknijusiuose įrenginiuose, nereikalaujant pasirinktinio ROM, todėl „Xposed“, skirta „Android Nougat“, užtruko tiek ilgai.
Kodėl Xposed kūrimas užtrunka taip ilgai?
„Xposed“ magija – kas leidžia moduliams prisijungti prie kitų programų metodų – reikalauja gilių žinių apie tai, kaip „Zygote“ ir Android Runtime (ART) kūriniai. Šie reikalavimai jau dabar neleidžia daugeliui žmonių prisidėti prie projekto, tačiau problemą apsunkina tai, kad rovo89 buvo pagrindinis Xposed kūrėjas pastaruosius 5 metus.
Štai kodėl raginimai gauti atvirą šaltinį Xposed modifikacijoms, padarytoms po paskutinio viešo Xposed išleidimo, buvo atmesti. Tai jo smegenys, ir jis geriausiai jį supranta ir modifikuoja, todėl tokiu vėlyvu projekto etapu prideda daugiau darbo jėgos. gali tiesiog atidėti projektą.
Be to, jei rovo89 nuolat atnaujintų savo šaltinį, jis buvo susirūpinęs kad kas nors imtųsi nebaigto kodo, kad sukurtų pusiau veikiančią Xposed Framework be universalaus Xposed Installer, kuris jį lydėtų. (Šis konkretus dalykas vis tiek nutiko diegiant abfortą, o dėl to atsiradusi įvairių diegimo metodų netvarka pateisino rovo89 dvejones.)
Taigi geriausia, ką galėjome padaryti, buvo skirti rovo89 laiko dirbti su savo augintinio projektu. Xposed nėra jo visas ar net ne visą darbo dieną darbas. Tai tiesiog hobis, kurį jis 5 metus daro bendruomenės labui. Tokiam sudėtingam projektui kaip „Xposed“ reikia laiko dirbti ir tada išbandyti – laiko, kurio jis dažnai neturėdavo dėl kitų savo įsipareigojimų. Progresas buvo buvo padaryta per pastaruosius metus, kaip rovo89 dokumentavo keliuose savo viešuose šios problemos atnaujinimuose, kol galiausiai tiek pati „Xposed Framework“, tiek „Xposed Installer“ yra paruošti išleisti.
Ką padarė rovo89, kad „Xposed“ veiktų Nuga?
Nauji „Android“ leidimai kartais keičia ART veikimo būdą, todėl gali tekti pakeisti „Xposed“ dalis. „Android 7.0 Nougat“ pristatė ART skirtą „Just-in-Time“ kompiliatorių, kuris, pavyzdžiui, padeda pagerinti programų vykdymo laiką. Tačiau neoficialus „Xposed Framework“, sukurtas „abfor“, tiesiog išjungia daugelį ART optimizavimų, kad metodo prijungimas veiktų tinkamai.
Priešingai, rovo89 įgyvendinimas išlaiko visus ART optimizavimus „Android Nougat“. perkompiliuojant metodo skambutį naudojant JIT ir vis tiek naudojant metodo kabliukus. Tai reiškia, kad galite mėgautis Xposed modulio privalumais neprarandant našumo, priverstinai išjungę ART optimizavimą.
Norėdami gauti daugiau informacijos apie tai, ką rovo89 padarė, kad pagaliau pasiektų patikimą „Xposed“, skirtą „Android Nougat“, prikabinimo metodą, rekomenduojame perskaityti toliau pateiktą teiginį, kurį jis mums pateikė.
Visas rovo89 pareiškimas
Akivaizdu, kad „Xposed“ esmė yra galimybė susieti „Java“ metodus, t. y. leisti moduliams vykdyti kodą prieš, po arba vietoj šių metodų. Beveik visos kitos funkcijos yra pagrįstos šia funkcija, todėl labai svarbu, kad ji visada veiktų taip, kaip tikėtasi. Bendra koncepcija buvo ta pati, nes prieš penkerius metus išradau Xposed, reikia pakeisti metodo įėjimo tašką. Tai pradeda žlugti, kai vykdymo metu nepatikrinamas įėjimo taškas – tai iš tikrųjų yra kai kurių ART optimizacijų atveju.
Vienas iš pavyzdžių – kai įvesties taškas jau žinomas kompiliavimo metu, tada skambinantieji gali tiesiogiai pereiti prie šio adreso jo neieškodami. Kitas pavyzdys yra inlining. Apsvarstykite šį pavyzdį:
ART yra pakankamai protingas, kad pastebėtų, kad du kartus () metodas yra labai paprastas, todėl logika įterpiama tiesiai į doSomething () metodą, pavyzdžiui:
Vis tiek galite prijungti du kartus() metodą, bet jis nebebus iškviestas iš doSomething() vykdymo metu, taigi ir atgalinis skambutis. ART yra dar gudresnis: jis suvokia, kad magija visada yra 42 ir todėl sąlygos niekada negali būti įvykdytos. Taigi visas doSomething() metodas iš tikrųjų yra neveiksmingas:
Ankstesnėse versijose „Xposed“ visiškai išjungdavo šiuos optimizavimus ir priversdavo viską perkompiliuoti. Tai atėjo su keliais minusais. Visų pirma, ART kūrėjai atlieka fantastišką darbą siekdami maksimaliai padidinti savo našumą optimizavimas, o jų išjungimas iš dalies būtinai sumažina našumą (niekada nematavau, kiek nors). Tada pats perkompiliavimas ne visada būna lengvas ir sukeldavo daug galvos skausmo, ypač pradžioje. Galiausiai, perkompiliuoti failai, be iš anksto sukompiliuotų failų /sistemoje, užima vietos.
Neoficialios „Nougat“ versijos taip pat išjungia šiuos optimizavimus, tačiau jos neverčia perkompiliuoti (nes iš pradžių prievadas buvo sukurtas integruoti į ROM). Todėl kartais kabliukai gali būti neįvykdyti.
Naudodami oficialią versiją turėsite išlaikyti optimizuotą kodą ir vis tiek turėsite patikimus kabliukus. Kaip tai veikia? Na, Xposed įrašo visus skambučius. Taip nutinka, kol APK yra kompiliuojami arba atskirame iš anksto optimizuoto kodo leidime. Šie papildomi duomenys neužima daug vietos, bet leidžia Xposed sužinoti, kur galėjo būti įtrauktas tam tikras metodas. Taigi, kai metodas užsikabins, visi jo skambintojai bus deoptimizuoti, t. y. jų kodas nebebus naudojamas. Tai užtikrina, kad atgalinis skambutis tikrai bus iškviestas. Ir jei skambinantysis yra intensyviai naudojamas, jis bus tiesiog perkompiliuotas su JIT, šį kartą žinant, kad metodas yra užsikabinęs ir todėl kai kurie optimizavimai netaikomi. Tai reiškia, kad užkabinimo būdų poveikis sumažinamas iki minimumo. Valio!
Dabar eik į priekį ir išbandykite. Būtinai naudokite Xposed Installer 3.1.2, nes reikėjo pakeisti konfigūracijos kelią, kad būtų palaikomas failų šifravimas.
Skaityti daugiau
Išvada
Tikimės, kad jus taip pat domina „Xposed“, skirtos „Android 7.X Nougat“, išleidimas. Laukti teko ilgai, bet neišvengiama, atsižvelgiant į didžiulį Xposed sudėtingumą. Jei vis dar nežinote, kas yra Xposed arba kaip jis veikia, nesijaudinkite. Labai mažai žmonių (įskaitant mus) iš tikrųjų supranta, kaip tai veikia. Tokie kūrėjai kaip rovo89 daro viską, ką gali, kad supakuotų savo darbą, kad jums nereikėtų suprasti, kas vyksta po gaubtu.
Ar jums patinka „Xposed Framework“? Apsvarstykite galimybę paaukoti rovo89 už nuostabų jo atliekamą darbą. Jei manote, kad turite tai, ko reikia norint prisidėti prie projekto, peržiūrėkite toliau pateiktą rovo89 GitHub puslapį.
Aukokite rovo89
Prisidėkite prie Xposed
Ieškote Xposed modulių? Peržiūrėkite mūsų Xposed Framework Module subforumą arba atsisiųskite XDA Labs programą ir naršykite mūsų Xposed modulių kolekciją.
Xposed modulių forumas
Atsisiųskite XDA Labs
Android Oreo Progress
Jei jums įdomu, štai kaip sekasi gauti „Xposed“, skirtą „Android Oreo“.
Jau pradėjau dirbti su Android 8.0. Yra keli naujos kalbos funkcijos kad turėsiu pažiūrėti, bet bendra koncepcija vis tiek turėtų veikti. Tai apima visą darbą, skirtą bet kokių skambintojų sudaryto kodo pripažinimui negaliojančiu, kai naudojamas metodas, o tai užtruko daugiausiai laiko, kai dirbau su „Nuga“. Todėl tikrai esu įsitikinęs, kad šį kartą būsiu daug greitesnis. Android 8.1neturėtų labai skirtis, todėl nesitikiu daug papildomo darbo.