Log.d和对性能的影响

And*_*Jay 24 debugging logging android

我不完全确定我在文档中阅读的内容.是否可以留下一堆logD代码片段,或者我应该将它们注释掉,以免它们影响我的应用程序的性能.

谢谢,

我有点困惑,因为如果你读到日志对象(文档),你会看到:

"详细程度方面的顺序,从最小到最多是ERROR,WARN,INFO,DEBUG,VERBOSE.除了在开发过程中,不应该将详细编译到应用程序中.调试日志在运行时编译但是被剥离.错误,警告和信息记录始终保留."

几乎听起来可以将调试消息留在那里因为它们被"剥离"了.无论如何,谢谢你的答案,我会在完成后对它们进行评论.一旦应用程序完成,我就不需要它们了.

谢谢

Mat*_*rla 18

日志会影响性能,因此建议您将其注释掉或使用条件语句进行记录.

例如

public class MyActivity extends Activity {
// Debugging
 private static final String TAG = "MyApp";
 private static final boolean D = true;
 @Override
 public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if(D) Log.e(TAG, "MyActivity.onCreate debug message");
 }
Run Code Online (Sandbox Code Playgroud)

然后在您发布发布版本时,只需将"D"更改为false

  • @anticafe因为例如,如果你在Log语句中进行连接,它仍然会运行(导致不必要的分配).设置`debuggable = false`只能确保它不会在日志中结束.这些方法仍然会被调用. (12认同)
  • 为什么不设置debuggable = false来禁用app中的调试:<application android:icon ="@ drawable/icon"android:label ="@ string/app_name"android:debuggable ="false"> (3认同)
  • 更好的是,使用Proguard从代码中剥离所有日志。 (3认同)

Chr*_*Orr 9

我的解决方案