Включить внешние файлы для получения переименования библиотек?

Используя yguard, я запутываю проект, и я хотел бы знать, ЕСЛИ возможно включить файлы вне здания, чтобы получать только библиотеки и функции новой схемы именования?

Например, я запутываю класс com.MyClass.MyInternalClasses, и за пределами моего проекта у меня есть файл mysql.java, а внутри mysql.java я использую некоторый класс из MyInternetClasses, но, поскольку я запутал его, имя было изменено на что-то иначе скажем com.AB

Итак, что он будет делать, так это прочитать этот java-файл и заменить имена всех запутанных имен, измененных на нем.

Или какой будет лучший подход к этому?

1 ответ

Решение

Обычно подход состоит в том, чтобы запутать основную часть вашего кода, но оставить открытые интерфейсы необъяснимыми - вы задаете их с помощью элемента keep. Таким образом, пользователь кода не должен знать о запутывании. Если вы обнаружите, что ваши общедоступные интерфейсы содержат код, который вы хотите запутать, то небольшая редизайн (использование небольшого делегирования или создание общедоступного минимального фасада) позволит вам отделить общедоступный от "секретного".

Альтернативой является использование элемента карты, чтобы вручную указать переименование для интерфейсов, которые вы хотите использовать извне, затем вы можете изменить вызывающий код для использования этих имен. Переименования, примененные yGUARD, регистрируются, поэтому вы можете извлечь имена оттуда - но это начинает становиться грязным.

Другие вопросы по тегам