在C衍生语言中,有可能有调试和运行时的条件代码.这样,运行时就没有剩余的开销.
如何使用Java/Android和Log.i语句执行此操作?如果我只使用一个常量全局布尔值debugOn,显然会在运行时留下冗余检查.
条件Log语句的最佳方法是什么?
非常感谢
编辑:
由于在接受的答案之后有很多评论我在这里发表我的结论....
private static final boolean DEBUG = true;
if (DEBUG) Log.i("xxx",this.getClass().getName()+ "->" + Thread.currentThread().getStackTrace()[2].getMethodName() );
Run Code Online (Sandbox Code Playgroud)
...就像在xCode :)
Mal*_*olm 18
Android构建系统在BuildConfig.DEBUG不久前开始提供一个常量,所以我建议使用它并编写如下代码:
if (BuildConfig.DEBUG) Log.i(TAG, "Message");
Run Code Online (Sandbox Code Playgroud)
不会进行冗余检查,因为它是常数.此代码甚至可以通过编译器进行优化,但您也可以使用ProGuard.即使检查到位,对性能的任何可能影响也应该可以忽略不计.
这种方法曾经有一个缺点,你必须自己编辑这个常量,手动或通过构建文件中的自定义规则.但是,现在,这是由构建系统自动处理的,因此您不必自己做任何事情.
| 归档时间: |
|
| 查看次数: |
3214 次 |
| 最近记录: |