Android之LogCat
在Android项目中不能用System.out.println(……)调试,因为Android不是运行在一个普通JVM虚拟机上,而是在DalvikVM虚拟机的模拟硬件中运行。
虽然,也可以使用System.out.println(……)输出信息,但它输出的信息只能作为一般信息输出,没有任何特征。还好Android SDK提供了许多强劲的调试特性–LogCat。
LogCat是DDMS(Dalvik调试监视器服务)的重要组成部分。它提供了收集和查看系统调试输出的机制。在LogCat中可以过滤输出的日志信息,这样可以查看到任何想要查看的日志信息。LogCat将日志分为V(Verbose)、D(Debug)、I(Info)、W(Warning)、E(Error)五个等级,其中V等级最低,E的等级最高。Verbose等级将输出所有日志,包括模拟器的任何操作都会有日志输出。
如果你是使用Eclipse+ADT开发Android应用,则可以在DDMS视图(Window->Open Perspective->DDMS或Window->Open Perspective->Other…->DDMS)中查看LogCat的输出信息。在LogCat输出中,我们能通过点击LogCat视图标签栏的”V- D – I – W – E”按钮,以优先级为条件来简单的过滤日志信息。而且你还可以自定义LogCat的日志等级,这个特性会使你喜欢上ADT插件。
如果想在JAVA代码中定制LogCat日志输出(即自定义的调试信息),也非常简单。
首先导入LogCat包:
1 | import android.util.Log; |
接着你就可以使用LogCat输出自己的调试信息:
1 2 3 4 5 | // 输出D等级的日志 Log.d("DEBUGTAG" , "My debug-message"); // 输出E等级的日志 Log.e("ErrorTAG" , "My debug-message"); |
其它等级的日志信息输出依次类推即可,你可以查看Log类的源代码来了解LogCat的用法。Log.e等方法的第一个参数是一个Tag标签,你可以为它自定义一个醒目的Tag。
你还可以将LogCat用到异常处理中:
1 2 3 4 5 6 7 | Button b = (Button) this.findViewById(R.id.btn_open_search); try{ throw new Exception(); }catch (Exception e) { Log.e("throw e", Integer.toString(R.id.btn_search)); System.out.println("test:println" + R.id.btn_search); } |
更强大的是,Android可以像普通Java项目一样,支持断点调试!
Monitor Your Web Site 24/7 - Receive email and SMS alerts anytime your web site goes down.
