Xposed Framework ei vaja XDA lugejatele tutvustamist. Kui küsiti meie kogukonna asjade kohta vihkab Lollipopi kõige rohkem, oli arutelu kõige enam hääli saanud kommentaar, et see katkestas Xposedi toetuse. Tegelikult on paljud foorumiliikmed isegi keeldunud Lollipopi värskendamisest just sel põhjusel. Kuid see kõik muutub nüüd, kuna väga oodatud Xposed Framework on lõpuks Android Lollipopi jaoks saabunud.
Kui te pole Xposediga veel tuttav, siis lihtsalt öeldes on see modifitseerimiskogukonnale jumala kingitus. Xposed ei nõua ROM-ide vilkumist, kuid pakub palju kohandamist ja näpunäiteid, mida kasutajad saavad installida nagu rakendused juurtega seadmetesse. Seda on uskumatult lihtne kasutada ja see on piiratud riskiga. Ja nüüd saavad kõik Lollipopi Androidi entusiastid nautida selle fantastilise projekti eeliseid oma seadmetes. Hankige allalaadimine ja asuge modifitseerima!
rovo89 oli ka lahke, et pakkuda meile uusima projekti kohta küsimusi ja vastuseid. Allpool leiate vastused kõigile oma küsimustele projekti kohta.
Miks see nii kaua aega võttis? ART on ilmunud rohkem kui aasta tagasi!
Esiteks – paljud inimesed küsivad pidevalt ART toetust. Lollipopil on palju rohkem muudatusi, näiteks veelgi rangemad SELinuxi poliitikad, 64-bitised ROM-id ja arhitektuurimuudatused, mida võiksite oodata suurelt väljaandelt. Ja loomulikult täiustatakse KUNST ennast pidevalt; ART for KitKat ja ART for Lollipop vahel on suured erinevused.
Nii et üheks põhjuseks on suur keerukus, mis nõudis uurimis-, arendus- ja testimistööks palju-palju töötunde.
Teine põhjus on see, et minu elus on muid asju peale Xposedi, nii et on olnud nädalaid või isegi kuid, mille jooksul ma pole peaaegu üldse koodi vaadanud.
Kas peame kõik moodulid ümber kirjutama?
Ei, Xposed API on peaaegu muutumatu. Xposed võtab kõik üksikasjad kokku, nii et moodulid ei pea hoolima sellest, kas need töötavad Dalvikis või ART-is. Paljud moodulid töötavad tegelikult ilma muudatusteta, eriti need, mis muudavad kasutajarakenduste käitumist. Süsteemi käitumist sihivad moodulid võivad vajada kohandamist uue Androidi raamistiku koodiga, mis ei ole põhjustatud ARTist, vaid lihtsalt arhitektuurist ja koodimuutustest, mis toimuvad kahe Androidi vahel vabastab. Kõige olulisem on see, et süsteemiteenuste kood on viidud eraldi faili. Enamiku mõjutatud moodulite puhul saab selle lahendada väikese ümbertöötlusega (koodi teisaldamisega teise kohta).
Kas see tegelikult töötab?
Jah! Vähemalt minu jaoks töötab see hästi minu igapäevases seadmes (Nexus 5 CM12-s) ja ka minu Nexus 9-s (maksis XDA – aitäh!). Telefon on nagu tavaliselt stabiilne ja rakendused töötavad hästi. Ja ilmselgelt töötavad ka moodulid ja nende konksud/ressursiasendused hästi, muidu poleks mõtet midagi välja anda.
Aga miks see siis alfaversioon on?
Sest pärast viimast stabiilset väljalaset on toimunud tohutud muudatused, mida peavad testima inimesed, kes teavad, kuidas taastamist kasutada, alglaadimissilmustest põgeneda ja vigadest õigesti teatada. Soovitan tungivalt algajatel oodata, kuni Xposed on piisavalt kogenud inimeste poolt testitud.
Samuti on mõned servajuhtumid, mida pole veel testitud, näiteks JNI (natiivsed) meetodid ja meetodid, mida nende ühendamise ajal rakendatakse.
Ma tahan seda installida. Nüüd! Mida ma tegema pean?
Veenduge, et lugesite minu ülaltoodud sõnu ja tunneksite oma telefoni sisemust. Ilmselgelt peate olema Lollipopi ROM-il ja oma andmetest hea varukoopia. Praegu avaldan ainult ARMv7 versiooni. 64-bitine on keerulisem, nii et proovime kõigepealt "lihtsat" varianti.
Praegu tuleb kohandatud taastamises installida käsitsi. Zip-faili vilkumisel installitakse:
- app_process32_xposed ja mõned sümbollingid
- libexposed_art.so
- libart.so ja mõned seotud kahendfailid + teegid (põhinevad 5.0.2-l, täiustatud haakimistoega jne)
- XposedBridge.jar (nüüd salvestatud kausta /system/framework)
Olemasolevate failide varukoopiad luuakse automaatselt ja neid saab hiljem taastada.
See ei tööta/mulle ei meeldi! Kuidas ma saan selle desinstallida?
Lihtsaim viis on varukoopia taastamine või süsteemipartitsiooni välklamp. Desinstallimiseks pole veel loodud ZIP-faili.
Miks te minu seadmes ART-faile asendate? See on invasiivsem kui Dalvikis, põhjustab olulisi jõudlusprobleeme ja on ebastabiilne!
Panin kirja mõned põhjused GitHub. Jah, see on invasiivsem, nii et olen püüdnud seda pikka aega vältida, kuid tehnilisest ja toele orienteeritud vaatenurgast arvan, et see on parem valik.
Väiksem jõudlus kui originaal ART? Tõenäoliselt, kuna pidin teatud tüüpi konksude võimaldamiseks mõned optimeerimised keelama. Kuid see mõjutab ainult murdosa kõigist meetoditest ja isegi nende puhul ei ole jõudluse langus kindlasti märkimisväärne ega märgatav, kui isegi mõõdetav. ART teeb endiselt tuhandeid muid optimeerimisi ja ma püüdsin keelata nii vähe kui võimalik, pakkudes samas võimalikult palju paindlikkust.
Stabiilsus on hea, nagu eespool mainitud. Võrreldes lähenemisviisiga, mida kasutasin Dalviki jaoks (muutes käitusaja sisemisi andmestruktuuri app_process), olen isegi üsna kindel, et teekide täielik asendamine on palju usaldusväärsem tee. Sain oma muudatused olemasolevasse koodi puhtalt integreerida ja seotud funktsioone uuesti kasutada, samas kui muudel viisidel oleks vaja palju häkkimisi ja eeldusi.
Kas teete lähtekoodi lõpuks avalikuks?
Muidugi leiate selle GitHubist kohe pärast alfaversiooni väljaandmist, praegu eraldi harus.
Kas see tähendab, et Androidi vanemat versiooni enam ei toetata?
Ei! Uus kood kompileeritakse kõigis Androidi 4.x versioonides ja seda tuleb enne ühtset väljalaset lihtsalt testida. Kuid kõigepealt pean olema kindel, et see töötab Lollipopi jaoks hästi. Võimalik, et ART-i toe saaks KitKati tagasi portida, kuid see on vähem prioriteetne.
Kuidas saan teid teie töö eest tänada?
Paljud inimesed on küsinud võimalusi mõne taala annetamiseks, mistõttu olen loonud a annetus leht nüüd.
Kui palju ma pean annetama, et saaksite lisada funktsiooni X või Y-d tegeva mooduli?
See ei ole annetamine, see on kellelegi maksmine tulevase töö ootuses. Mind vabakutseliste töökohad ei huvita.