打开/关闭调试的最佳方法

时间:2012-07-13 14:19:59

标签: android debugging

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

这就是我的想法:

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

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

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:2)

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