1

我的场景如下:我有一个远程服务,任何应用程序都可以通过 Messenger 与之通信。应用程序发送我定义的自定义事件。每个事件都定义了一个要执行的“动作”(类似于 Android 的Intent)。为了测试服务发送和处理的事件,我想设置一个新的事件动作(例如EventAction.DEBUG),但我不希望这个动作和处理它的代码出现在版本中,.

这就是我的想法:

  • 使用final static boolean变量有条件地执行代码。由于硬编码变量,我不喜欢这个。
  • 从配置文件中读取调试状态。这很慢,而且编译器也会生成代码来处理调试,因此会产生无用的比较。
  • 在启动时将调试标志传递给应用程序。我忽略了如何在 Android 中做到这一点,或者即使这是可能的。另外我认为这也会使编译器生成调试代码。

您认为实现此行为的最佳方法是什么?

4

2 回答 2

4

一个final static。ProGuard 将删除未使用的代码。

关于配置文件的值——如果它在运行时永远不会改变,它只是“无用的”,并且与应用程序的其余部分相比,比较并没有那么慢,真的。

于 2012-07-13T14:34:02.170 回答
2

Android 的 ADT 版本 17 及更高版本已包含一个 BuildConfig.DEBUG 变量,在导出已签名的 APK(用于发布)时该变量设置为 false。

于 2012-07-13T14:44:08.023 回答