• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            life02

              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              197 隨筆 :: 3 文章 :: 37 評論 :: 0 Trackbacks
            http://www.blogjava.net/cdz/archive/2011/11/20/364352.html


                記錄與偵錯可以分成 " 在程序中加上除錯訊息 " ,與 " 在偵錯環(huán)境中查看除錯訊息 " 兩部分。

                在程序中加上除錯訊息

            程序幾乎行行都可以出錯。要看程序中的哪一部分可能會出錯,實在是門很深的學(xué)問。除了程序代碼語法格式上的問題,絕大部分會造成大麻煩的,是隱藏在程序邏輯中的問題。這些問題只有在模擬器甚至在實際機(jī)器上運行時才會出現(xiàn)。為了解決這些問題,我們需要一些協(xié)助工具。在 Android 平臺上,我們可以透過 "Log" 函數(shù),來達(dá)到自行在程序代碼中加入一個個自訂的 " 記錄點 " 或 " 檢查點 " 。并可以透過開發(fā)環(huán)境中的 "LogCat" 工具來查看記錄。當(dāng)程序流程每次運作到 " 記錄點 " 時,相應(yīng)的 " 記錄點 " 就會在開發(fā)工具記錄中輸出一筆偵錯用的訊息。開發(fā)者透過這份記錄,來檢查程序執(zhí)行的過程、使用到的參數(shù),是否與我們期望的結(jié)果符合。并依此來辨別程序代碼中可能出錯的區(qū)域,好能對癥根治造成問題的程序代碼


               
             導(dǎo)入 Log 函數(shù):

                打開 "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");

            ....

                 分析:

                 就像許多人在學(xué)生時代 k 書時,會在課本上使用不同顏色作記號。用不同顏色的色筆,來代表各段課文不同的重要性或是意義。 "Log" 函數(shù)的作用,就像是色筆一樣,協(xié)助我們在程序代碼中 " 作記號 " ,這些數(shù)位記號,會在稍后就介紹到的 "LogCat" 工具中顯示。


                 
            Log 的使用格式如下

                 Log. 代號 ( 標(biāo)簽 , 訊息 );

                 代號依據(jù)訊息的類型,我們有五種 Log 訊息形式可以用作記錄。

                       1. Log.v (VERBOSE) 詳細(xì)訊息

                 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) 的第一個參數(shù),是一個自定的記錄標(biāo)簽。在目前的 BMI 應(yīng)用程序范例中,我們還看不太出來自定記錄標(biāo)簽的意義。但是當(dāng)程序的功能一擴(kuò)張的時候(例如像在AppDemos 范例那樣,包含各種不同功能),我們可以為不同的功能,給予不同的紀(jì)錄標(biāo)簽。

                 Log.(v,d,i,w,e) 的第二個參數(shù)中,加入我們想要記錄的資訊。

               

                實際應(yīng)用

                在 BMI 應(yīng)用程序中,我們可以在用來處理輸入錯誤的 "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 函數(shù),來先將錯誤訊息記錄起來,等到整個程序大致完成了,再來用 Toast 或 AlertDialog 元件,來實作輸入錯誤提示的功能 。

                

                在偵錯環(huán)境中查看除錯訊息

            在程序中加上除錯訊息后,我們可以使用除錯模式 (Debug Mode) 運行模擬器,并透過開發(fā)工具來查看除錯訊息。切換到 "Debug" 環(huán)境配置,可以看到右下角 的 "LogCat" 視窗。其上有五個醒目的V 、D 、I 、W 、E 圖示,分別代表著五種 Log 形式 (Verbose, Debug, Info, Warn, Error) ,還有一個綠色的 "+" 號,與一個紅色的 "-" 號。模擬器運行時會產(chǎn)生很多的訊息記錄 (Log) ,一不注意就看到眼花了。這時候,我們自訂的記錄標(biāo)簽(范例中自訂的標(biāo)簽是 "Bmi" )就派上了用場,正好可以為 LogCat 加上一個過濾器 (Log Filter) ,只顯示與 "Bmi" 標(biāo)簽相關(guān)的訊息記錄。


                
            加入訊息記錄過濾器 (Log Filter)

                在 "LogCat" 視窗右側(cè),按下綠色的 "+" 號,會彈出一個 "Log Filter" 視窗。在 "Log Filter"視窗的 "by Log Tag" 欄位中填入 "Bmi" ,并填入任意的 "Filter Name" 后,按下 "ok" 按鈕。"LogCat" 視窗上會多出一個與我們填入的 "Filter Name" 相同的標(biāo)簽。面的內(nèi)容,即所有標(biāo)示為 "Bmi" 的自訂訊息記錄。

            posted on 2011-12-15 22:28 life02 閱讀(422) 評論(0)  編輯 收藏 引用 所屬分類: android組件學(xué)習(xí)
            曰曰摸天天摸人人看久久久| 亚洲综合熟女久久久30p| 亚洲午夜久久久久妓女影院| 久久综合九色欧美综合狠狠| 大美女久久久久久j久久| 久久99精品国产麻豆宅宅| 热re99久久精品国产99热| 久久免费精品一区二区| 国产成人AV综合久久| 久久精品国产福利国产琪琪| 久久免费香蕉视频| 久久香综合精品久久伊人| 国产成人久久精品一区二区三区 | 国产成人精品久久| 久久精品视频一| 久久婷婷五月综合色奶水99啪| 久久男人Av资源网站无码软件| 久久狠狠高潮亚洲精品| 亚洲天堂久久精品| 性欧美大战久久久久久久| 亚洲伊人久久大香线蕉综合图片 | 亚洲女久久久噜噜噜熟女| 久久久亚洲欧洲日产国码aⅴ | 久久精品国产亚洲αv忘忧草| 狠狠色丁香婷婷久久综合五月| 狠狠色丁香久久婷婷综合蜜芽五月| 亚洲综合熟女久久久30p| 精品免费tv久久久久久久| 四虎影视久久久免费观看| 伊人久久无码中文字幕| 99久久99久久精品国产片| 久久人人爽人人人人爽AV| 久久精品免费一区二区三区| 亚洲国产精品无码久久久久久曰 | 三级三级久久三级久久| 精品久久久久香蕉网| 无码人妻少妇久久中文字幕| 99国产欧美久久久精品蜜芽| 色老头网站久久网| 国产成人精品久久亚洲高清不卡 国产成人精品久久亚洲高清不卡 国产成人精品久久亚洲 | 2021国产精品午夜久久|