我使用ProGuard使用以下内容来混淆我的项目:
release {
debuggable false
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
源代码在某种程度上被混淆了。但是,我想要保护的算法仍然可读。 ProGuard模糊了类/函数名称。虽然,它保持相同的控制。一切都完全一样。我使用了Dex2Jar和JD来验证最终结果。
如何保护我的算法并使其不可读?这与链接的涉嫌重复问题无关。链接主题的作者询问如何防止APK文件的逆向工程/反编译,这是不可能的。我的问题是具体的,与增强我的代码的混淆有关。
谢谢。
P.S。在我之前的一个版本的项目中,最终结果是类似的,虽然它涉及将while循环转换为涉及标签的东西。此外, for 循环已转换为:
for (;;)
类/算法没有任何改变。旧版本是在旧的gradle系统上开发的。