在我的Java代码中,我使用Debug
标志来控制调试模型,如果是调试,还有一些额外的功能,例如:摇摆手机显示activity
来更改应用版本。现在我想在将代码发布到市场时删除这些代码。
与下面的代码一样,有没有办法让VersionSwitchService.class
代码为null
而其他代码正常运行?
我的意思是即使有人反编译apk,VersionSwitchService.class
代码也会被视为空白。
if (isDEBUG) {
VersionSwitchService.libStart(this, new LibVersionSwitch() {
@Override
public void versionSwitchToOnline() {
//...
}
@Override
public void versionSwitch(String version) {
//...
}
});
}
答案 0 :(得分:1)
如果您isDebug
final static
:
final static boolean isDebug = false;
Java编译器将完成删除未到达的代码部分。在你的例子中,'then'部分被完全省略,因此在你的apk中不可用。
此外,在创建(发布)apk版本时,Android工具将剥离所有未使用的方法和类。因此,如果您的VersionSwitchService
类仅用于调试,则它不会出现(由于static final
调试常量的组合)