Давно ничего не писал, пора это исправить
Одна из проблем мобильной разработки — это время, которое занимает выпуск обновления для игры в Google Play и App Store. Процесс ревью занимает значительное время. Бывает, что программисты и тестеры пропускают баги, и релиз выходит с критической ошибкой, которую нужно исправить срочно. На помощь пришли китайцы и сделали InjectFix https://github.com/Tencent/InjectFix/tree/master
Инструмент не идеальный, но позволяет выпускать патчи кода без обновления в аппсторе! Просто магия. Есть множество ограничений: нельзя в патче создавать новые классы, нельзя использовать классы, которые до этого не использовались, нельзя добавлять импорты в файлы. Зато можно подменить практически любой метод любого класса, исправив неработающий функционал. Можно быстро залатать дыру, пока полноценный фикс проходит ревью. Утилита создает бинарный файл, который нужно загрузить пользователю. Принцип работы: в процессе билда приложения все помеченные методы всех помеченных классов подменяются на методы вида
if (patch) patchedCall(); else normalCall();
Да, дополнительный иф в каждом методе снижает производительность, поэтому не стоит помечать классы, критичные к производительности. Но для интерфейсных компонентов вполне подойдет
Post #20
175

- ❤ 4
- 👍 2