Rovo89: оновлення щодо розробки Xposed для Nougat

Розробник Xposed Rovo89 надав інформацію про поточний статус Xposed для Nougat. Перейдіть, щоб дізнатися, чому оновлення триває так довго!

Причина, чому я особисто продовжую використовувати Android 6.0 Marshmallow на своєму OnePlus 3, незважаючи на OnePlus випускає оновлення Nougat для телефону на стабільні канали, це наявність Xposed. Фреймворк Xposed і екосистема модулів становлять важливу частину роботи з Android, якій я віддаю перевагу – до того моменту, коли я готовий відмовитися від останнього оновлення ОС від OEM, щоб просто насолодитися цим солодким фрукти.

Хоча Xposed для Nougat потрібен деякий час, і деякі з нас не проти почекати далі, пройшов деякий час відколи ми востаннє чули про хід проекту.

Старший визнаний розробник XDA rovo89 знадобилося деякий час, щоб повідомте нам про поточну ситуацію щодо проекту Xposed for Nougat:

«Схоже, що все більше і більше людей хвилюються щодо того, чи буде (і коли) Xposed для Nougat чи ні, тому я відчув, що повинен щось сказати.

Чому це займає стільки часу? Тому що з кожним випуском я намагаюся переконатися, що Xposed чудово інтегрується з удосконаленнями в новій версії ART. Крок від Lollipop до Marshmallow був невеликим. Це була еволюція, деякі речі навіть дозволили інтегрувати Xposed у більш елегантний спосіб. Загалом, це було здебільшого обережне портування, а не інновація.

З Nougat щось фундаментальне змінилося. Якщо ви вже користуєтеся Nougat, ви помітили, що встановлення тепер відбувається набагато швидше. Це тому, що файли APK не компілюються негайно (AOT), а починаються в (повільнішому) режимі інтерпретації. Звучить погано, але вони включили JIT, який швидко компілює ті методи, які дуже часто використовуються. Це відновить добре відому та постійно вдосконалювану продуктивність рідного коду. Крім того, ART зберігає список цих часто використовуваних методів ("профілювання"). Коли пристрій неактивний, він нарешті виконує компіляцію AOT, але на основі даних профілювання. Після цього ви отримуєте чудову продуктивність відразу після запуску програми. JIT все ще чекає на випадок, якщо шаблони використання зміняться, і я думаю, що він також відкоригує профіль і покращить компіляцію AOT.

Це призводить до різних станів компіляції та більшої складності. Крім того, у минулому було багато проблем, спричинених потребою Xposed перекомпілювати весь ПЗУ та всі програми: іноді це спричиняло цикли завантаження, коли файли Odex були надто сильно попередньо оптимізований, він заблокував досить багато місця для зберігання перекомпільованих файлів, і мені потрібно було вимкнути деякі оптимізації, як-от вбудовування та прямий покажчик дзвінки. Я сподіваюся, що зможу скористатися компілятором JIT, щоб уникнути цього в Nougat. Якби Xposed знав, звідки викликається метод, він міг би зробити недійсним скомпільований код абонентів, щоб вони тимчасово використовували інтерпретатор. Якщо вони достатньо важливі, JIT їх перекомпілює.

Я вже провів багато досліджень і експериментів для цього, і зараз намагаюся це реалізувати. Але, як ви можете собі уявити, все це вимагає великих зусиль і легко може зайняти сотні годин..."

Основна проблема, як зазвичай у проектах для любителів, це розподіл часу, і ми розуміємо, звідки береться rovo89. Незважаючи на поточний стан проекту Xposed, він включає місяці зусиль різних розробників, щоб зробити можливим кінцевий користувач насолоджуватися таким простим і доступним для розповсюдження способом.

Як то кажуть, Рим не будувався за день, але цегла клалася щогодини:

Тож так, я все ще працюю над підтримкою Nougat, коли це дозволяє мій вільний час, але я не знаю, коли це буде зроблено. Коли це буде зроблено, ви дізнаєтесь.

Android не ідеальний, і саме Xposed дозволяє нам виправити те, чого не хоче оригінальний розробник. Очікування остаточного виправлення Android продовжується для найновішої ОС, і ми бажаємо rovo89 удачі з нашого боку.

Ви можете прочитати повну заяву в повідомлення на форумі. Ви теж чекаєте на Xposed? Дайте нам знати в коментарях!