life02

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  197 随笔 :: 3 文章 :: 37 评论 :: 0 Trackbacks
http://www.blogjava.net/cdz/archive/2011/11/20/364352.html


    记录与侦错可以分成 " 在程序中加上除错讯息 " ,与 " 在侦错环境中查看除错讯息 " 两部分。

    在程序中加上除错讯息

程序几乎行行都可以出错。要看程序中的哪一部分可能会出错,实在是门很深的学问。除了程序代码语法格式上的问题,绝大部分会造成大麻烦的,是隐藏在程序逻辑中的问题。这些问题只有在模拟器甚至在实际机器上运行时才会出现。为了解决这些问题,我们需要一些协助工具。在 Android 平台上,我们可以透过 "Log" 函数,来达到自行在程序代码中加入一个个自订的 " 记录点 " 或 " 检查点 " 。并可以透过开发环境中的 "LogCat" 工具来查看记录。当程序流程每次运作到 " 记录点 " 时,相应的 " 记录点 " 就会在开发工具记录中输出一笔侦错用的讯息。开发者透过这份记录,来检查程序执行的过程、使用到的参数,是否与我们期望的结果符合。并依此来辨别程序代码中可能出错的区域,好能对症根治造成问题的程序代码


   
 导入 Log 函数:

    打开 "Bmi.java" 文件,我们在程序中加入一些除错讯息。一段含有记录点 (Log) 的程序代码片段如下

import android.util.Log

....

public class Bmi extends Activity {

private static final String TAG = "Bmi";

....

Log.d(TAG, "find Views");

Log.d(TAG, "set Listensers");

....

     分析:

     就像许多人在学生时代 k 书时,会在课本上使用不同颜色作记号。用不同颜色的色笔,来代表各段课文不同的重要性或是意义。 "Log" 函数的作用,就像是色笔一样,协助我们在程序代码中 " 作记号 " ,这些数位记号,会在稍后就介绍到的 "LogCat" 工具中显示。


     
Log 的使用格式如下

     Log. 代号 ( 标签 , 讯息 );

     代号依据讯息的类型,我们有五种 Log 讯息形式可以用作记录。

           1. Log.v (VERBOSE) 详细讯息

     2. Log.d (DEBUG) 除错讯息

     3. Log.i (INFO) 通知讯息

     4. Log.w (WARN) 警告讯息

     5. Log.e (ERROR) 错误讯息

    一般较常用的是 Log.d( 除错讯息 ) 、 Log.w ( 警告讯息 ) ,和 Log.e ( 错误讯息 ) 。范例中多使用 Log.d( 除错讯息 ) 。

private static final String TAG = "Bmi";

....

Log.d(TAG, "find Views");

Log.(v,d,i,w,e) 的第一个参数,是一个自定的记录标签。在目前的 BMI 应用程序范例中,我们还看不太出来自定记录标签的意义。但是当程序的功能一扩张的时候(例如像在AppDemos 范例那样,包含各种不同功能),我们可以为不同的功能,给予不同的纪录标签。

     Log.(v,d,i,w,e) 的第二个参数中,加入我们想要记录的资讯。

   

    实际应用

    在 BMI 应用程序中,我们可以在用来处理输入错误的 "try...catch" 语句中加入 "Log" 讯息,好让我们得以从记录资料中,追踪到输入错误的情况。

public class Bmi extends Activity {

private static final String TAG = "Bmi";

....

catch(Exception err){

Log.e(TAG, "error: " + err.toString());

Toast.makeText(Bmi.this, getString(R.string.input_error),

Toast.LENGTH_SHORT).show();

}


    
延伸运用

    在实作错误讯息提示前,我们其实可以使用 Log.e 函数,来先将错误讯息记录起来,等到整个程序大致完成了,再来用 Toast 或 AlertDialog 元件,来实作输入错误提示的功能 。

    

    在侦错环境中查看除错讯息

在程序中加上除错讯息后,我们可以使用除错模式 (Debug Mode) 运行模拟器,并透过开发工具来查看除错讯息。切换到 "Debug" 环境配置,可以看到右下角 的 "LogCat" 视窗。其上有五个醒目的V 、D 、I 、W 、E 图示,分别代表着五种 Log 形式 (Verbose, Debug, Info, Warn, Error) ,还有一个绿色的 "+" 号,与一个红色的 "-" 号。模拟器运行时会产生很多的讯息记录 (Log) ,一不注意就看到眼花了。这时候,我们自订的记录标签(范例中自订的标签是 "Bmi" )就派上了用场,正好可以为 LogCat 加上一个过滤器 (Log Filter) ,只显示与 "Bmi" 标签相关的讯息记录。


    
加入讯息记录过滤器 (Log Filter)

    在 "LogCat" 视窗右侧,按下绿色的 "+" 号,会弹出一个 "Log Filter" 视窗。在 "Log Filter"视窗的 "by Log Tag" 栏位中填入 "Bmi" ,并填入任意的 "Filter Name" 后,按下 "ok" 按钮。"LogCat" 视窗上会多出一个与我们填入的 "Filter Name" 相同的标签。面的内容,即所有标示为 "Bmi" 的自订讯息记录。

posted on 2011-12-15 22:28 life02 阅读(406) 评论(0)  编辑 收藏 引用 所属分类: android组件学习

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理