Pärast pikka ootamist teatas Xposed Frameworki arendaja ametlikult, et projekt toetab nüüd Android Nougatit. Installige Xposedi moodulid kohe!
Kuna Androidi ökosüsteem on aastate jooksul küpsenud, leiab üha vähem kasutajaid põhjuseid, miks nad peaksid oma seadme juurima. Kasvav trend on nende kasutajate seas, kes otsustavad jääda püsivara püsivara juurde kas seetõttu, et kogemused on rahuldavad või nad ei taha mängida kassi-hiire mäng Google'i SafetyNet API-ga. Kui aga küsisite 2016. aasta alguses kasutajalt, miks ta oma telefone juurutas, siis võib-olla oli põhjus number üks, et nad saaksid installige Xposed Framework. See on olnud üle aasta pärast Android 7.0 Nougat ilmus esmakordselt, kuid pikk ootamine on lõpuks läbi: ametlik Xposed Framework for Android Nougat on lõpuks saadaval.
Viimase aasta jooksul oli XDA tunnustatud vanemarendaja rovo89, on pakkunud Xposed Frameworki juhtivarendaja mituuuendused Android Nougati jaoks mõeldud Xposed Frameworki edenemise kohta. Mõne jaoks on ootamine on olnud talutav
peamiselt tänu suurele hulgale lisafunktsioonidele, mida Xposed Framework pakub Android Marshmallow. Kuid paljud teised on liikunud elule ilma Xposedita oma seadmetes.Kui arendaja abforce andis välja an ART alammoodul AOSP 7.1.2 jaoks, kuid nagu meie oma GermainZ märgib oleks parem oodata ametlikku Xposed Frameworki väljalase, kuna abfori rakendamine nõudis raamistiku integreerimist kohandatud ROM-idesse. Lisaks see mitteametlik rakendus oli puudulik, mis viis teatud Xposedi puhul ebajärjekindla või lollaka käitumiseni Moodulid.
Kuigi abfor tegi suurepärast tööd oma mitteametliku Xposedi tööle panemisel Android 7.1 Nougatiga, läks tema rakendamine vastuollu rovo89 nägemus Xposedist – see peaks olema stabiilne lahendus, mis tagab kasutajatele ja arendajatele usaldusväärse ja hõlpsasti kasutatava lepingu samasugused. Selle all peame silmas seda, et mitte ainult moodulid ei peaks kasutajatele probleemideta töötama, vaid ka moodulite seadistamise viis ülesehitus peaks olema kasutajate vahel ühtlane, et arendajad teaksid, kas Xposedi moodul on rakenduses süüdi või mitte krahh.
Me ei pea enam muretsema selliste probleemide pärast nagu rovo89 (pärast abi XDA tunnustatud arendajalt wanam) on nüüd valmis Xposed Frameworki ja Installeri ametliku värskenduse välja andma ühilduvus Android 7.0/7.1 Nougatiga. See tähendab, et te ei pea installima kohandatud ROM-i ega segama vilkuvate ebastabiilsete versioonidega nautige Xposedit – lihtsalt juurutage oma telefon ja installige uusim rakendus Xposed Installer (lingitud allpool) ja a Xposed Installer teeb teie eest Xposedi installimise võlu.
Xposed Installer sirvib mooduli hoidlat
See võib mõnele inimesele tunduda hiline, eriti kuna see väljalase tuleb üle kuu pärast Android 8.0 Oreo väljaandmist. Pidage meeles, et väga vähestel seadmetel on paljude kuude jooksul juurdepääs Android Oreo stabiilsele versioonile. Android Oreo on ainult peal 0.2% kõigist Android-seadmetest (võrreldes Nougati puhul ~18%-ga) vastavalt Google'i uusimale statistikale, kuid paljud meie kasutajad on sellised, kes armastavad installida kohandatud ROM-e, et püsida pingelises servas.
Kuigi isegi kui installite Android 8.0 mitteametlik port saadaval paljudes meie foorumites olevates seadmetes, paljud neist pordidest ei ole igapäevased draiverid. Nii et välja arvatud juhul, kui olete valmis uhiuue eest sadu dollareid välja käima Google Pixel 2/2 XL, Sony Xperia XZ1/XZ1 Compactvõi tulevane seade, näiteks Huawei Mate 10, siis saate tõenäoliselt Android Nougati Xposed Frameworki kasutusest mitu kuud välja pigistada.
Kui see kõlab nagu teie, siis minge Xposed Installeri ja raamistiku ZIP-failide ametlikku foorumi lõime juurde, et see oma Android Nougati seadmes käivitada.
Laadige alla Xposed Installer v3.1.2 (manus)
Xposed Installer for Nougat 7.0 (SDK24) allalaadimine
Xposed Installer for Nougat 7.1 (SDK25) allalaadimine
Paljudele uuematele kasutajatele, kes pole nii hästi kursis sellega, milleks Xposed Frameworki saab kasutada või kuidas see töötab, selgitab allpool lühidalt Xposed Frameworki, miks peaksite olema põnevil ja miks selle arendamine võttis nii kaua aega tegid.
Miks installida Xposed Framework?
Kas soovite saada kohandatud ROM-i funktsioone ilma kohandatud ROM-i vilkumiseta? Kõigi ROM-i kohandamiseks mõeldud Xposedi moodulite ema, tuntud kui GravityBox, kas olete kaetud. Kas soovite kohandada kuvaseadeid rakendusepõhiselt? Proovi Rakenduse seaded. Kuidas oleks kohandada teatud rakendusi, näiteks Hangoutsid? Või muutke Instagrami nii, et saate laadige alla mis tahes postitused, mis teile meeldivad?
Xposed annab arendajatele võimaluse muuta peaaegu kõike, mida nad tahavad— enamasti suunatud üksikutele rakendustele, kuid muuta saab isegi kogu süsteemi hõlmavaid funktsioone. Meie loetletud näited on vaid jäämäe tipp. Lisafunktsioonide või muudetavate rakenduste arv on uskumatu – otsige lihtsalt läbi ametlik Xposedi mooduli hoidla et ise veenduda. Pidage meeles, et selle uue väljalaske ja Nougati toe jaoks võib olla vaja mõnda moodulit värskendada, seega kontrollige kindlasti enne nende installimist oma Nougati ROM-ile!
Kuidas Xposed moodulid töötavad?
Asja sisu on see, et Xposed Framework võimaldab moodulitel seda teha "haakuda" mis tahes rakenduse Java-meetoditesse— olgu see siis kasutaja installitud või süsteemirakendus. Xposed laseb moodulitel täita oma meetodeid enne, ajal või asemel sihtrakenduse algsed meetodid.
Kujutage näiteks ette meetodit, mida kasutatakse Gmaili rakenduses, mis postitab uute meilide teavitused. Vaikimisi loob meetod uue teatise nuppudega, mille abil saate arhiivida/kustutada või meilile vastata. Selle meetodi külge saab panna Xposed mooduli ja lisada uue nupu, näiteks "märgi loetuks". (Jah, on juba moodul just selleks.)
Ülaltoodu on Xposed Frameworki moodulitel võimaldatava lõpptulemuse liigne lihtsustamine. Raamistik ise on uskumatult keeruline ja muudab selle peaaegu universaalseks juurseadmetes töötamiseks ilma kohandatud ROM-i vajamata. Seetõttu on Xposed for Android Nougat valmimine võtnud nii kaua aega.
Miks Xposedi arendamine nii kaua aega võtab?
Xposedi võlu – mis võimaldab moodulitel haakuda teiste rakenduste meetoditega – nõuab sügavaid teadmisi selle kohta, kuidas Zygote ja Android Runtime (ART) töötab. Need nõuded juba välistavad paljudel inimestel projekti panuse, kuid probleemi süvendab asjaolu, et rovo89 on olnud Xposedi peamine panustaja viimased 5 aastat.
Seetõttu on tagasi lükatud üleskutsed hankida Xposedis pärast viimast avalikku väljalaskmist Xposedis tehtud muudatusi. See on tema vaimusünnitus ja ta oskab seda kõige paremini mõista ja seda muuta, nii et projekti nii hilises staadiumis rohkem tööjõudu lisada. võib projekti lihtsalt edasi lükata.
Lisaks, kui rovo89 uuendaks pidevalt oma allikat, ta oli mures et keegi kasutaks pooleliolevat koodi, et ehitada pooltoimiv Xposed Framework ilma universaalse Xposed Installerita. (See täpselt juhtus igatahes abfori juurutamisega ja sellest tulenev segadus erinevate installimeetodite vahel õigustas rovo89 kõhklust.)
Seega oli parim, mida saime teha, anda rovo89-le aega oma lemmikloomaprojekti kallal töötada. Xposed ei ole tema täis- ega isegi osalise tööajaga töö. See on lihtsalt hobi, mida ta on kogukonna hüvanguks teinud 5 aastat. Nii keeruline projekt nagu Xposed nõuab aega töötamiseks ja seejärel testimiseks – aega, mida tal muude kohustuste tõttu sageli ei olnud. Edusammud oli tehtud viimase aasta jooksul, just nagu rovo89 dokumenteeris mõnes avalikus värskenduses selle probleemi kohta, kuni lõpuks on nii Xposed Framework ise kui ka Xposed Installer väljalaskmiseks valmis.
Mida tegi rovo89, et saada Xposed Nougatis tööle?
Androidi uued versioonid toovad mõnikord kaasa muudatusi ART-i toimimises, mis võib nõuda Xposedi osade ümbertöötamist. Android 7.0 Nougat tutvustas ART jaoks just-in-Time kompilaatorit, mis aitab parandada näiteks rakenduste käitusaegset jõudlust. Kuid abforce'i mitteametlik Xposed Framework keelab lihtsalt paljud ART-i optimeerimised, et meetodite sidumine saaks õigesti töötada.
Seevastu rovo89 teostus säilitab kõik ART-i optimeerimised Android Nougatis kompileerides JIT-i abil meetodi kutsuja uuesti ja jättes siiski meetodi konksud paigas. See tähendab, et saate nautida Xposed mooduli eeliseid ilma jõudlust ohverdamata, keelates ART optimeerimise jõuliselt.
Lisateavet selle kohta, mida rovo89 tegi, et lõpuks saavutada Android Nougati jaoks mõeldud Xposedis usaldusväärne haakimismeetod, soovitame lugeda allolevat avaldust, mille ta meile esitas.
Rovo89 täielik avaldus
Xposedi tuum on ilmselgelt selle võime siduda Java-meetodeid, st lasta moodulitel käivitada koodi enne, pärast või nende asemel. Peaaegu kõik muud funktsioonid põhinevad sellel, seega on oluline, et see töötaks alati ootuspäraselt. Üldine kontseptsioon on olnud sama, kui ma viis aastat tagasi Xposedi leiutasin, see nõuab meetodi sisenemispunkti muutmist. See hakkab ebaõnnestuma, kui sisestuspunkti täitmise ajal ei kontrollita – mis on tegelikult nii mõne ART optimeerimise puhul.
Üks näide on see, kui sisestuspunkt on kompileerimise ajal juba teada, siis saavad helistajad otse sellele aadressile hüpata, ilma seda otsimata. Teine näide on inlining. Mõelge sellele näitele:
ART on piisavalt nutikas, et märgata, et double() meetod on väga lihtne ja seepärast põimib loogika otse doSomething() meetodisse, näiteks järgmiselt:
Saate siiski kasutada double()-meetodit, kuid seda ei kutsuta enam käitusajal doSomething()-st ja ka teie tagasihelistamine. KUNST on veelgi nutikam: ta mõistab, et maagia on alati 42 ja seetõttu ei saa seda tingimust kunagi täita. Nii et kogu doSomething() meetod on tegelikult no-op:
Varasemates versioonides keelas Xposed need optimeerimised täielikult ja sundis kõike uuesti kompileerima. Sellega kaasnes mitu varjukülge. Esiteks teevad ART arendajad fantastilist tööd oma jõudluse maksimeerimiseks optimeerimised ja nende osaline keelamine toob tingimata kaasa väiksema jõudluse (ma ei mõõtnud kunagi, kui palju kuigi). Siis ei ole uuesti koostamine alati lihtne ja tekitas mulle palju peavalu, eriti alguses. Lõpuks võtavad uuesti kompileeritud failid ruumi, lisaks eelnevalt kompileeritud failidele / system.
Nougati mitteametlikud versioonid keelavad ka need optimeerimised, kuid need ei sunni uuesti kompileerimist (kuna port tehti algselt ROM-i integreerimiseks). Seetõttu ei pruugita mõnikord konksu sooritada.
Ametliku versiooniga saate optimeeritud koodi säilitada ja teil on endiselt usaldusväärsed konksud. Kuidas see toimib? Noh, Xposed salvestab kõik tehtud kõned. See juhtub APK-de kompileerimise ajal või eeloptimeeritud koodi eraldi passis. Need lisaandmed ei võta palju ruumi, kuid võimaldavad Xposedil välja selgitada, kuhu teatud meetod võis lisada. Seega, kui meetod on haakunud, deoptimeeritakse kõik selle helistajad, st nende koodi enam ei kasutata. See tagab, et konksu tagasihelistamisele helistatakse kindlasti. Ja kui helistajat kasutatakse palju, kompileeritakse see lihtsalt JIT-iga uuesti, seekord teadmisega, et meetod on haakunud ja seetõttu mõned optimeeringud ei kehti. See tähendab, et haakimismeetodite mõju on viidud miinimumini. Jee!
Nüüd minge edasi ja proovige seda. Kasutage kindlasti versiooni Xposed Installer 3.1.2, kuna failipõhise krüptimise toetamiseks tuli muuta konfiguratsiooniteed.
Loe rohkem
Järeldus
Loodame, et olete Android 7.X Nougati jaoks mõeldud Xposedi väljalaskmisest sama suure hooga kui meie. Ootamine on olnud pikk, kuid Xposedi keerukust arvestades vältimatu. Kui olete endiselt segaduses, mis on Xposed või kuidas see töötab, ärge muretsege. Väga vähesed inimesed (kaasa arvatud meie) saavad tegelikult aru, kuidas see töötab. Arendajad nagu rovo89 annavad oma töö pakkimisel endast parima, nii et te ei peaks tegelikult aru saama, mis kapoti all toimub.
Kas teile meeldib Xposed Framework? Kaaluge rovo89-le annetamist selle suurepärase töö eest, mida ta teeb. Kui arvate, et teil on projekti panustamiseks kõik vajalik, vaadake allolevat rovo89 GitHubi lehte.
Anneta rovo89-le
Aidake kaasa Xposedile
Kas otsite Xposedi mooduleid? Vaadake meie Xposed Framework Module'i alamfoorumit või laadige alla rakendus XDA Labs ja sirvige meie Xposedi moodulite kogu.
Xposedi moodulite foorum
Laadige alla XDA Labs
Android Oreo Progress
Kui teid huvitab, vaadake Xposedi Android Oreo hankimise edenemist järgmiselt.
Olen juba alustanud tööd Android 8.0-ga. Neid on vähe uued keelefunktsioonid mida ma pean vaatama, aga üldine kontseptsioon peaks siiski toimima. See hõlmab kogu tööd, mis on seotud kõigi helistajate kompileeritud koodide kehtetuks tunnistamisega, kui meetod on konksul, mis võttis kõige rohkem aega, kui ma Nougati kallal töötasin. Seega olen väga kindel, et olen seekord palju kiirem. Android 8.1ei tohiks palju erineda, nii et ma ei oota selle jaoks palju lisatööd.