Android Studio 單刷《第一行代碼》系列 02 —— 日誌工具 LogCat

前情提要(Previously)

本系列將使用 Android Studio 將《第一行代碼》(書中講解案例使用Eclipse)刷一遍,旨在爲想入坑 Android 開發,並選擇 Android Studio 做爲開發 IDE 的同窗開路。
PS:其實我就是現學現賣,但願我能堅持刷完。html

在第一戰中,咱們建立了第一個App project, Hello World,並分析了項目結構,及運行原理。android

連接在此:Android Studio 單刷《第一行代碼》系列 01 —— 第一戰 HelloWorld正則表達式

摘要(Abstract)

必備技能,使用日誌工具 LogCat,並嘗試解決真機調試沒有日誌的問題。app

日誌工具(LogCat)

日誌在任何項目的開發過程當中都會起到很是重要的做用,在 Android 項目中若是你想要查看日誌則必需要使用 LogCat 工具。ide

在 Android Studio 最下方的 Status Bar 中找到 6:Android,點擊她。以下圖工具

6:Android

LogCat 出現了,以下圖測試

LogCat

  1. 這裏選擇 Devices,固然通常來講不須要選擇,若是隻鏈接了一個設備的話。
  2. 這裏選擇 Log level,日誌級別。包括:Verbose、Debug、Info、Warn、Error、Assert。以上級別依次升高。
  3. 這裏選擇過濾器,默認會自動生成一個過濾條件是 Package name 是項目包名的過濾器。

使用 LogCat

Android 中的日誌工具類是 Log(android.util.Log),提供了以下的幾個方法供咱們打印日誌。調試

  1. Log.v() 對應 Verbose
  2. Log.d() 對應 Debug
  3. Log.i() 對應 Info
  4. Log.w() 對應 Warn
  5. Log.e() 對應 Error
  6. Log.wtf() 在輸出日誌的同時,會把此處代碼此時的執行路徑(調用棧)打印出來。

介紹完畢,咱們來演戲一下吧。打開 HelloWorldActivity,在 onCreat()方法中添加一行打印日誌的語句,爲了讓日誌明顯一點我加了一些下劃線,以下所示:日誌

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_hello_world);
    Log.d("HelloWorldActivity","______________onCreate execute______________");
}

Log.d() 方法中傳入了兩個參數,第一個參數是 tag,通常傳入當前的類名就好,主要用於對打印信息進行過濾。第二個參數是 msg,即想要打印的具體內容。code

如今從新運行一下項目,點擊工具欄中的綠色小箭頭,或者按 Shift+F10。等程序運行完畢,使用模擬器的戰友可能已經能看到日誌了,以下圖

log

使用真機的戰友,可能看到的仍是空蕩蕩的LogCat。須要作這麼一件事,菜單欄 Tools → Android → Enable ADB Integration 把這個勾上,而後再次運行。

此次應該能看到日誌了吧?看看能不能找到咱們想要打印出來日誌信息。過濾器中必定要選中 app:com.xxxx.helloworld 哦。若是有日誌,可是找不到咱們想要打印的日誌 HelloWorldActivity: ______________onCreate execute______________,那麼恭喜你,你用的真機貌似跟個人同樣比較高端,是否是有什麼黑科技。

咱們來嘗試解決這個問題。

  1. 手機的開發人員選項打開了麼,其中的 USB 調試打開了麼?搞定他們並從新運行,是否能找到咱們的日誌?否,轉到 2。
  2. 日誌中是否有這樣 could not disable core file generation for pid 3963: Operation not permitted 的信息麼? 是,轉到 3;否,那我也不知道怎麼搞,或者你能夠把日誌貼到評論中我看看。
  3. 是華爲手機麼?是,轉到 4;否,你能夠參考 4 本身 Google Baidu 一下。
  4. 在撥號界面輸入:*#*#2846579#*#* 進入測試菜單界面,而後
    Project Menu → 後臺設置 → LOG設置
    LOG 開關 → LOG 打開        LOG 級別設置 → VERBOSE
    Dump&Log → 所有選中
    重啓手機,重啓 Android Studio。
    PS:根據系統版本的不一樣,可能會有些許差別。

重啓完畢,打開 Android Studio,運行項目,這下應該能找到咱們的日誌了。若是還沒找到,對不起洗洗睡吧,我只能幫到這兒了。(或者你能夠換個手機)

定製過濾器(Filter)

點擊過濾器那個下拉框,選擇 Edit Filter Configuration,在彈出的對話框中點擊左上角的加號新建立一個 Filter。以下圖

filter

含義以下:

  • Name:Filter 名稱
  • by Log Tag: 經過日誌的 tag 過濾
  • by Log Message:經過日誌的 msg 內容過濾
  • by Package Name:經過包名過濾
  • by PID:經過PID過濾
  • by Log Level:經過日誌等級過濾
  • regex:表示可使用正則表達式進行匹配

以上過濾條件能夠組合。

我建了一個data的過濾器,過濾條件是 tag 等於 data。將 Filter 選擇爲 data,咱們的日誌不見了,由於匹配不到 tag 等於 data 的日誌。

如今去把咱們在 onCreate() 方法中的日誌的 tag 改成 data。以下所示:

Log.d("data","______________onCreate execute______________");

而後從新運行,將 Filter 選擇爲 data,咱們的日誌出現了。固然還可能會有一些奇奇怪怪的日誌也出現了,仔細看看 tag 中都包含有 data。

抑制不住的好奇心

看看這個 Android Studio 最下方的 Status Bar,咱們找到 LogCat 的地方,以下圖

6:Android

難道大家很差奇爲何 Android 前面有個 6 麼?難道是由於用了 LogCat 你的 Android 開發水平就會 666666666?

無論發生什麼事件,我相信真相只有一個,以下圖:

6:Android

OK,收工了。

其它(Miscellaneous)

儘管我試圖在本文中儘可能完整的進行描述,但受限於篇幅和個人我的水平,本文不免有所遺漏,歡迎在評論中指出。
若是您以爲閱讀本文對您有幫助,請點一下「推薦」按鈕,您的「推薦」將是我最大的寫做動力!

關於做者(About Me)

addict
原文連接:http://www.cnblogs.com/DebugLife/p/4343570.html

本文謝絕轉載,如需轉載需徵得做者本人贊成,謝謝。

相關文章
相關標籤/搜索