Java / Android中的死代码

时间:2014-02-12 16:00:22

标签: java android dead-code

有没有办法告诉Java或Android中的编译器不要删除代码中的某些语句 - 这些语句用于在使用后清理变量以防止ram中的任何数据残留? 会创建一个虚拟方法来解决这个问题??

这些语句基本上将变量设置为基于类型的初始值。

提前致谢!

2 个答案:

答案 0 :(得分:0)

我在一个奇怪的假设下回答,你有充分的理由相信代码即使已经死了也仍然有用。

将值false存储在编译器无法理解的模糊格式中。然后,使用您的混淆值有条件地分支到该代码。编译器不会知道它已经死了,所以它不会被删除。

我将使用一个文件作为我的例子,但它可能不是最有效的方法。假设编译器认为是死代码的代码位于名为myCode()的函数中。假设fin正在从仅包含false后跟EOF

的文件中读取
if(Boolean.parseBoolean(fin.next()))
    myCode();

答案 1 :(得分:0)

您描述的代码不是死代码。 死代码是永远不会执行的代码。 这是一个例子:

private int secretSchmarr;

public boolean blammo()
{
    boolean returnValue;

    secretSchmarr = calculateSecretValue();

    returnValue = useSecretValue(secretSchmarr);

    secretSchmarr = 99; // this is not dead code.

    return returnValue;

    secretSchmarr = 98; // This is dead code because it can never execute.
}