ProGuard-如何保留方法并同时混淆它们? - java

我正在尝试手动混淆我的Android应用程序(是的,我知道,这很痛苦),为此,我需要保留我实现的所有方法,同时还要用ProGuard对其进行混淆。

我试图像这样更改配置:

-keep class com.project.x.* {

}

但是它保留了所有的类名和方法名,并且仍然删除了我未使用的代码。

我该怎么做才能解决这个问题?

提前致谢!

参考方案

正如CommonsWare所解释的那样,您似乎不太可能希望保留未使用的方法并对其名称进行混淆,但是ProGuard如下支持它:

-keepclassmembers,allowobfuscation class com.project.x.** {
    <methods>;
}

这强行将所有方法(但不是所有类)保留在指定的程序包(及其子程序包)中,但仍允许混淆其名称。

ProGuard软件包名称缩短 - java

我正在开发一个Android项目,当我打包分发该项目时,该项目会通过ProGuard自动运行。使用Android默认设置,ProGuard会将类和程序包名称混淆为大多数单个字母,但保持程序包层次结构不变。所以,如果我有一个像com.example.foo.bar.something.else.my.class.net包含Blah类,ProGuard会将其转换…

在Java源代码中隐藏密码 - java

我需要在源代码中隐藏密码,为了降低反编译的风险,有哪些可能的方法来混淆密码?例如final String password = "secret"; 参考方案 首先,我不会将变量命名为password。其次,我不会将其保留为原始格式,而是对其进行编码。第三,我将使用char[]而不是String(因为字符串驻留在字符串池中)。当然,最好的选…

android-android studio模拟器中的SSL问题,在手机上可以正常工作 - java

我有一个可以通过https调用网络服务的应用程序。当我在手机上运行apk时,效果很好。但是,在模拟器中,所有通过POST的SSL请求均失败,并显示以下信息: 读取错误:ssl = 0xb402be00:SSL库失败,通常是一个协议 错误 错误:100c50bf:SSL例程:ssl3_read_bytes:NO_RENEGOTIATION(外部/无聊的sl /…

绑定Java库Xamarin.Android - java

我花了两天时间在每个论坛,文档,tuto,博客等上寻找答案。我为实习生启动了一个Android应用程序,因为我不懂Java,所以用xamarin C#开发了它。直到最近一切都还不错,但现在我需要集成一个SDK才能在应用程序中使用POS(销售点),但是该库是用Java编写的,即使跟随文档或辅导老师,我也无法将其与xamarin绑定(我什至无法调试)。这里有人已…

Java:线程池如何将线程映射到可运行对象 - java

试图绕过Java并发问题,并且很难理解线程池,线程以及它们正在执行的可运行“任务”之间的关系。如果我创建一个有10个线程的线程池,那么我是否必须将相同的任务传递给池中的每个线程,或者池化的线程实际上只是与任务无关的“工人无人机”可用于执行任何任务?无论哪种方式,Executor / ExecutorService如何将正确的任务分配给正确的线程? 参考方案 …