Я использовал ProGuard, чтобы запутать свой проект, используя следующее:
release {
debuggable false
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
Исходный код в некоторой степени запутан. Хотя алгоритмы, которые я хочу защитить, по-прежнему читабельны. ProGuard запутывает имена классов / функций. Тем не менее, он сохраняет тот же контроль. Все точно так же. Я использовал Dex2Jar плюс JD для проверки конечного результата.
Как мне защитить мои алгоритмы и сделать их нечитаемыми? Это не связано с предполагаемой проблемой дублирования. Автор из связанной темы спрашивает о том, как предотвратить обратный инжиниринг / декомпиляцию APK-файлов, что невозможно. Моя проблема специфична и связана с улучшением запутывания моего кода.
Спасибо.
P.S. В одной из моих предыдущих версий проекта конечный результат был аналогичным, хотя он включал преобразование цикла while в нечто, включающее метки. Также цикл для был преобразован в:
for (;;)
Класс / алгоритмы не были изменены никоим образом. Однако старая версия была разработана на старой системе gradle.