日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Windows环境下Android Studio系列5—日志调试

發布時間:2023/12/15 Android 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Windows环境下Android Studio系列5—日志调试 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為什么80%的碼農都做不了架構師?>>> ??

1. 定制Logcat調試日志字體顏色

? ? Logcat是Android開發調試中最常用的一個工具,Android Studio 1.2.2中默認對Logcat調試的顏色已經有所區分,但如果你想要定制自己的調試日志對應的字體顏色,以便更好地區分verbose、debug、error、info、warning等分類信息,那么下面看看如何來自定義Logcat的提示信息。

? ? 通過菜單File-->Setting-->Editor->Colors & Fonts->Android Logcat進入,由于我們在之前的[2] “編輯字體設置”中已經設置了myDarcula Scheme,因此會看到如下界面:

? ? 這里可以看到有6種調試級別:Assert、Debug、Error、Info、Verbose、Warning。

? ? 注意需要先將右邊Use inherited attributes選項去掉打鉤,然后才可以自定義顏色,此時雙擊右邊Foregound圖標就可以為每種分類設定特定的顏色了:

? ? ? ? ? ? ??? ??

? ? 選擇好顏色后在下方該調試級別文字會立即發生變化,非常直觀。

2. Logcat過濾選項

? ? 在[3]的第6部分,初次認識了Logcat,下面仔細看看如何來使用Logcat來快速查找關心的日志信息:

? ??

? ?左側可看到Logcat對話窗口,右上方可依次看到Log Level過濾選項、搜索過濾輸入框、以及Filter Configuration選項。

? ??

? ? 選擇Edit Filter Configuration,出現“Create New Logcat Filter”窗口,其中可設置一個或多個選項來過濾日志,并為這一組過濾參數指定一個Filter Name:

? ? ?. 可通過正則編寫的Log TAG

? ? . 可通過正則編寫的Log Message

? ? . Package Name

? ? . PID

? ? . Log Level ??

? ? ? ? ? ? ???

? ?這里我們根據TAG和Level設置兩個過濾項,分別命名為firstActivity與secondActivity:

? ? ? ? ? ??

? ?設置完成后,在右側下拉列表中就可以看到設置好的兩個過濾項: firstActivity與secondActivity了。

? ?

3. 代碼中輸出日志信息

? ? ?為了在代碼中輸出日志信息,需要使用Log類(import android.util.Log)。一個好的實踐是針對每個類/活動定義一個TAG常量,例如取當前類/活動的名稱作為TAG,然后利用log.v, log.d, log.i, log.w, log.e方法輸出日志。

? ? ?這幾個方法的最基本調用方式為第一個參數為@tag, 用于標識log消息的sorce,通常使用類或者活動名稱作為tag, 可在Logcat中基于tag快速過濾。第二個參數為日志串@msg,返回值int表示發送日志消息的字節數。

public?static?int?v(String?tag,?String?msg) public?static?int?d(String?tag,?String?msg) public?static?int?i(String?tag,?String?msg) public?static?int?w(String?tag,?String?msg) public?static?int?e(String?tag,?String?msg)

注意:當調用

Log.v(TAG,?"index="?+?i);

時,編譯器使用一個StringBuilder, 至少涉及3次分配操作:StringBuilder自身,buffer, 以及String對象。實際上還有另外一次buffer分配與復制,將對垃圾回收GC造成更大的壓力。這也就意味著如果你的log消息被過濾掉,則這里會對系統有較大的負荷-不斷地做buffer的分配與釋放(That means that if your log message is filtered out, you might be doing significant work and incurring significant overhead.)

? ?日志調用舉例,判斷activity創建時之前是否存在狀態信息:

import?android.util.Log; ... public?class?MyActivity?extends?Activity?{private?static?final?String?TAG?=?MyActivity.class.getSimpleName();...@Overridepublic?void?onCreate(Bundle?savedInstanceState)?{if?(savedInstanceState?!=?null)?{Log.d(TAG,?"onCreate()?Restoring?previous?state");/*?restore?state?*/}?else?{Log.d(TAG,?"onCreate()?No?saved?state?available");/*?initialize?app?*/}} }

? ? ? ? 代碼中還可以捕獲異常并輸出調用棧到日志中:

void someOtherMethod() {
? ?
try {
? ? ? ?
...
? ?
} catch (SomeException e) {
? ? ? ?
Log.d(TAG, "someOtherMethod()", e);
? ?
}
}

注意:?當準備發布app時需要將debug log消息以及調用棧輸出信息刪除。可以設置一個DEBUG flag,然后將調試日志輸出都放在條件語句中。

4. 在Debugger模式下運行應用程序

? ? 待續


參考資料:

[1] Android Studio使用小技巧:自定義Logcat,?http://www.jb51.net/article/65515.htm

[2]?Windows環境下Android Studio系列3—簡單設置.?http://my.oschina.net/1pei/blog/469674

[3]?Windows環境下Android Studio系列4—界面介紹,?http://my.oschina.net/1pei/blog/469845

[4]?Debugging with Android Studio,?https://developer.android.com/intl/zh-cn/tools/debugging/debugging-studio.html

[5] class log,?https://developer.android.com/intl/zh-cn/reference/android/util/Log.html

[6] 第一行代碼——Android, 郭霖著, 人民郵電出版社, 2014.08.

轉載于:https://my.oschina.net/1pei/blog/478672

總結

以上是生活随笔為你收集整理的Windows环境下Android Studio系列5—日志调试的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。