Работа с базами данных Dex-файлов возможна, но очень сложна и практически нет хорошей оснастки.
Вместо этого вы должны использовать свой код во время сборки, когда он все еще представлен как файлы классов. Для этого существуют различные инструменты. Я написал инструмент под названием Byte Buddy, который позволяет запускать код во время сборки, используя либо плагин Maven, либо Gradle.
Чтобы изменить класс, вы должны реализовать интерфейс библиотеки Plugin
, который позволяет указать, какой класс вы хотите изменить и как вы хотите его изменить. Byte Buddy строит весь класс таким образом, что вам не нужно создавать прокси-сервер времени выполнения.
Для Gradle, вы должны создать конфигурацию ссылки код плагина:
configuration {
myPlugin
}
dependencies {
myPlugin "my:plugin:1.0"
}
byteBuddy {
transformation {
plugin "pkg.MyPluginImpl"
classpath configuration.myPlugin
}
}
Я предполагаю, что это то, что вы используете давая вам разработки для Android.
Как получить это для работы с библиотечными модулями? Классы только в основном проекте приложения трансформируются только. – Reymanx
Это невозможно, к сожалению. Библиотеки не являются частью вашего развернутого артефакта. Вам нужно будет их перестроить. Кроме того, вы должны использовать Java-агент во время выполнения (что невозможно на Android). –