Xposed Framework не се нуждае от представяне на XDA четците. На въпрос за нещата, които нашата общност мрази най-много Lollipop, единственият коментар с най-висок глас в дискусията беше, че прекъсна подкрепата за Xposed. Всъщност много членове на форума дори отказаха да актуализират до Lollipop специално поради тази причина. Но всичко това се променя сега, тъй като дългоочакваната Xposed Framework най-накрая пристигна за Android Lollipop.
Ако все още не сте запознати с Xposed, просто казано, това е божи дар за модиращата общност. Xposed не изисква мигане на никакви ROM, но носи тонове персонализиране и настройки, които потребителите могат да инсталират като приложения на руутнати устройства. Той е невероятно лесен за използване и с ограничен риск. И сега всички ентусиасти на Android на Lollipop могат да се насладят на предимствата на този фантастичен проект на своите устройства. Грабнете изтеглянето си и се заемете с модифицирането!
rovo89 също така беше любезен да ни предостави въпроси и отговори за последния проект. Можете да намерите отговори на всички ваши въпроси относно проекта по-долу.
Защо отне толкова време? ART е публикуван преди повече от година!
На първо място - много хора продължават да питат за ART подкрепа. Lollipop има много повече промени от това, като дори по-строги политики на SELinux, 64-битови ROM и промени в архитектурата, които бихте очаквали от голяма версия. И разбира се, самото ИЗКУСТВО непрекъснато се подобрява; има големи разлики между ART за KitKat и ART за Lollipop.
Така че една от причините е голямата сложност, която изисква много, много часове работа за изследване, развитие и тестване.
Друга причина е, че в живота ми има други неща освен Xposed, така че е имало седмици или дори месеци, в които почти не съм поглеждал кода.
Трябва ли да пренапишем всички модули?
Не, Xposed API е почти непроменен. Xposed абстрахира всички детайли, така че модулите не трябва да се интересуват дали работят на Dalvik или ART. Много модули действително ще работят без никакви промени, особено тези, които променят поведението на потребителските приложения. Модулите, насочени към поведението на системата, може да се наложи да бъдат коригирани към новия рамков код на Android, който не е причинено от ART, а просто от промени в архитектурата и кода, които се случват между всеки два Android издания. Най-същественото е, че кодът на системните услуги е преместен в отделен файл. За повечето от засегнатите модули това може да бъде решено чрез малко рефакторинг (преместване на код на друго място).
Действително ли работи?
да Поне за мен работи добре на ежедневното ми устройство (Nexus 5 на CM12), а също и на моя Nexus 9 (платен от XDA – благодаря!). Телефонът е стабилен както обикновено и приложенията работят добре. И очевидно модулите и техните кукички/замени на ресурси също работят добре, в противен случай няма да има смисъл да се пуска нещо.
Но защо тогава е алфа версия?
Тъй като има огромни промени от последната стабилна версия, които трябва да бъдат тествани от хора, които знаят как да използват възстановяване, да избягат от циклите на зареждане и да докладват грешки правилно. Горещо съветвам начинаещите да изчакат Xposed да бъде тестван от достатъчно опитни хора.
Има и някои крайни случаи, които все още не са тествани, като закачане на JNI (родни) методи и методи, които се изпълняват по време на закачането им.
Искам да го инсталирам. Сега! Какво трябва да направя?
Уверете се, че сте прочели думите ми по-горе и сте запознати с вътрешността на телефона си. Очевидно трябва да сте на Lollipop ROM и да имате добро архивиране на вашите данни. Засега ще публикувам само версията ARMv7. 64-битовият е по-сложен, така че нека първо опитаме „лесния“ вариант.
Засега инсталирането трябва да се извърши ръчно в персонализирано възстановяване. Мигането на zip файла ще инсталира:
- app_process32_xposed и някои символни връзки
- libexposed_art.so
- libart.so и някои свързани двоични файлове + библиотеки (базирани на 5.0.2, подобрени с поддръжка за закачане и др.)
- XposedBridge.jar (сега се съхранява в /system/framework)
Резервни копия на съществуващи файлове ще бъдат създадени автоматично и могат да бъдат възстановени по-късно.
Не работи/не ми харесва! Как мога да го деинсталирам?
Най-лесният начин е да възстановите резервно копие или да флашнете системния дял. Все още не е създаден zip файл за деинсталиране.
Защо заменяте ART файлове на моето устройство? Това е по-инвазивно, отколкото при Dalvik, ще причини значителни проблеми с производителността и ще бъде нестабилно!
Записал съм някои причини GitHub. Да, по-инвазивно е, така че се опитвах да го избягвам дълго време, но от техническа гледна точка и гледна точка, ориентирана към поддръжката, мисля, че това е по-добрият вариант.
По-малко производителност от оригиналния ART? Вероятно, тъй като трябваше да деактивирам някои оптимизации, за да направя определени видове куки възможни. Това обаче засяга само част от всички методи и дори за тях загубата на производителност със сигурност не е значителна или забележима, ако дори може да се измери. Все още има хиляди други оптимизации, извършвани от ART, и аз се опитах да деактивирам възможно най-малко, като същевременно осигурявам възможно най-голяма гъвкавост.
Стабилността е добра, както беше споменато по-горе. В сравнение с подхода, който използвах за Dalvik (модифициране на вътрешните структури от данни на времето за изпълнение от app_process), дори съм почти сигурен, че пълната подмяна на библиотеките е много по-надеждна начин. Бих могъл да интегрирам чисто промените си в съществуващия код и да използвам повторно свързани функции, докато много хакове и предположения биха били необходими за други начини.
Ще направите ли най-накрая изходния код публичен?
Разбира се, ще го намерите в GitHub много скоро след пускането на алфа версията, засега в отделен клон.
Това означава ли, че по-старите версии на Android вече не се поддържат?
Не! Новият код се компилира във всички 4.x версии на Android и просто трябва да се тества преди унифицирана версия. Но първо трябва да съм сигурен, че работи добре за Lollipop. Възможно е поддръжката на ART да бъде пренесена обратно към KitKat, но това е с по-малък приоритет.
Как да ви благодаря за работата ви?
Много хора поискаха начини да дарят няколко долара, така че аз създадох дарение страница сега.
Колко трябва да даря, за да добавите функция X или модул, който прави Y?
Това не е дарение, това е плащане на някого в очакване на бъдеща работа. Не се интересувам от работа на свободна практика.