欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android shell命令行中過(guò)濾adb logcat輸出的幾種方法

 更新時(shí)間:2016年08月11日 17:28:21   投稿:lqh  
本文主要介紹Android shell命令行中過(guò)濾adb logcat輸出的方法,這里整理了幾種方法,并詳細(xì)的說(shuō)明,有需要的朋友可以參考下

我們?cè)贏ndroid開(kāi)發(fā)中總能看到程序的log日志內(nèi)容充滿了屏幕,而真正對(duì)開(kāi)發(fā)者有意義的信息被淹沒(méi)在洪流之中,讓開(kāi)發(fā)者無(wú)所適從,嚴(yán)重影響開(kāi)發(fā)效率。本文就具體介紹幾種在shell命令行中過(guò)濾adb logcat輸出的方法。

       1、只顯示需要的輸出(白名單)

       最方便的當(dāng)然是通過(guò)管道使用 grep 過(guò)濾了,這樣可以使用 grep 強(qiáng)大的正則表達(dá)式匹配。簡(jiǎn)單的匹配一行當(dāng)中的某個(gè)字符串,例如 MyApp:

  1.        adb logcat | grep MyApp
  2.        adb logcat | grep -i myapp #忽略大小寫(xiě)。
  3.        adb logcat | grep --color=auto -i  myapp #設(shè)置匹配字符串顏色。更多設(shè)置請(qǐng)查看 grep 幫助。

      進(jìn)階一點(diǎn)可以使用 grep 的正則表達(dá)式匹配。例如上一個(gè)例子會(huì)匹配一行中任意位置的 MyApp,可以設(shè)置為僅匹配 tag。默認(rèn)的 log 輸出如下,如果修改過(guò)輸出格式相應(yīng)的表達(dá)式也要修改。

       I/CacheService(  665): Preparing DiskCache for all thumbnails.

       可以看出 tag 是一行開(kāi)頭的第三個(gè)字符開(kāi)始,根據(jù)這點(diǎn)寫(xiě)出表達(dá)式:

       adb logcat | grep "^..MyApp"

       根據(jù)這個(gè)格式也可以設(shè)置只顯示某個(gè)優(yōu)先級(jí)的 log,再匹配行首第一個(gè)字符即可。例如僅顯示 Error 級(jí)別 tag 為 MyApp 的輸出:

       adb logcat | grep "^E.MyApp"

       當(dāng)然也可以匹配多個(gè),使用 | 分割多個(gè)匹配表達(dá)式,要加轉(zhuǎn)義符。例如要匹配 tag 為 MyApp 和 MyActivity 的輸出:

       adb logcat | grep "^..MyApp\|^..MyActivity"
       adb logcat | grep -E "^..MyApp|^..MyActivity"  #使用 egrep 無(wú)須轉(zhuǎn)義符

       2、過(guò)濾不需要的輸出(黑名單)

       還是使用 grep,用法也跟上面的一樣,加一個(gè) -v 即可。例如要過(guò)濾 tag 為 MyApp 和 MyActivity 的輸出:

       adb logcat | grep -v "^..MyApp\|^..MyActivity"
       adb logcat | grep -vE "^..MyApp|^..MyActivity"  #使用 egrep 無(wú)須轉(zhuǎn)義符

       3、顯示同一個(gè)進(jìn)程的所有輸出

       有時(shí)一個(gè)程序里面的 tag 有多個(gè),需要輸出該程序(同一個(gè) PID)的所有 tag;僅使用 tag 過(guò)濾有時(shí)也會(huì)漏掉一些錯(cuò)誤信息,而一般錯(cuò)誤信息也是和程序同一個(gè) PID。還是通過(guò) grep 實(shí)現(xiàn),思路是先根據(jù)包名找到 pid 號(hào),然后匹配 pid。寫(xiě)成 shell 腳本如下,參數(shù)是程序的 java 包名(如 com.android.media)。

  #!/bin/bash
  packageName=$1
  pid=`adb shell ps | grep $packageName | awk ‘{print $2}'`
  adb logcat | grep –color=auto $pid

       4、從當(dāng)前開(kāi)始顯示

       logcat 有緩存,如果僅需要查看當(dāng)前開(kāi)始的 log,需要清空之前的。

       adb logcat -c && adb logcat

       5、過(guò)濾 log 文件

       有時(shí)需要分析 log 文件,過(guò)濾 log 文件還是使用 grep。例如 log 文件為 myapp.log,要匹配 tag 為 MyApp 和 MyActivity 的輸出,然后輸出到 newmyapp.log:

       cat myapp.log | grep "^..MyApp\|^..MyActivity" > newmyapp.log

       Windows 下推薦使用Notepad++,一個(gè)免費(fèi)強(qiáng)大的記事本,支持正則表達(dá)式查找替換??梢愿吡溜@示匹配內(nèi)容,也可以刪除不需要的內(nèi)容。

       以上的技巧主要用到了 grep,其實(shí) logcat 本身也有過(guò)濾功能,可以根據(jù) tag、優(yōu)先級(jí)過(guò)濾 log,具體請(qǐng)參考 Android 官方文檔Reading and Writing Logs。如果喜歡使用圖形界面,請(qǐng)參考Using DDMS,DDMS 里面的 logcat 也可以同樣過(guò)濾。

以上就是Android shell命令行中過(guò)濾adb logcat輸出的幾種方法的資料整理,后續(xù)繼續(xù)補(bǔ)充相關(guān)資料,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • 詳解Android中的Service

    詳解Android中的Service

    這篇文章主要介紹了Android中的Service,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-03-03
  • Cocos2d-x 3.0多線程異步加載資源實(shí)例

    Cocos2d-x 3.0多線程異步加載資源實(shí)例

    手機(jī)游戲,即便是休閑類的小游戲,往往也涉及大量紋理資源、音視頻資源、文件讀寫(xiě)以及網(wǎng)絡(luò)通信,處理的稍有不甚就會(huì)出現(xiàn)畫(huà)面卡頓,交互不暢的情況
    2014-04-04
  • Android 架構(gòu)之?dāng)?shù)據(jù)庫(kù)框架搭建

    Android 架構(gòu)之?dāng)?shù)據(jù)庫(kù)框架搭建

    這篇文章主要給大家介紹的是Android 架構(gòu)之?dāng)?shù)據(jù)庫(kù)框架搭建,在本篇中,將會(huì)讓你一點(diǎn)一滴從無(wú)到有創(chuàng)建一個(gè)不再為數(shù)據(jù)庫(kù)而煩惱的框架。需要的朋友可以參考下面文章的具體內(nèi)容
    2021-09-09
  • Android?Activity生命周期調(diào)用的理解

    Android?Activity生命周期調(diào)用的理解

    大家好。本篇文章主要講的是Android?Activity生命周期調(diào)用的理解,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • 解決Android 10/Android Q手機(jī)在后臺(tái)無(wú)法正常定位問(wèn)題

    解決Android 10/Android Q手機(jī)在后臺(tái)無(wú)法正常定位問(wèn)題

    這篇文章主要介紹了解決Android 10/Android Q手機(jī)在后臺(tái)無(wú)法正常定位問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • Android實(shí)現(xiàn)三段式滑動(dòng)效果

    Android實(shí)現(xiàn)三段式滑動(dòng)效果

    最近發(fā)現(xiàn)很多app都使用了三段式滑動(dòng),比如說(shuō)高德的首頁(yè)和某寶等物流信息都是使用的三段式滑動(dòng)方式,谷歌其實(shí)給了我們很好的2段式滑動(dòng),就是BottomSheet,所以這次我也是在這個(gè)原理基礎(chǔ)上做了一個(gè)小小的修改來(lái)實(shí)現(xiàn)我們今天想要的效果。
    2021-06-06
  • 如何使用Flutter開(kāi)發(fā)一款電影APP詳解

    如何使用Flutter開(kāi)發(fā)一款電影APP詳解

    這篇文章主要給大家介紹了關(guān)于如何使用Flutter開(kāi)發(fā)一款電影APP的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Flutter具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Kotlin協(xié)程開(kāi)發(fā)之Flow的融合與Channel容量及溢出策略介紹

    Kotlin協(xié)程開(kāi)發(fā)之Flow的融合與Channel容量及溢出策略介紹

    這篇文章主要介紹了Kotlin協(xié)程:Flow的融合、Channel容量、溢出策略,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-09-09
  • Android實(shí)現(xiàn)蝸牛進(jìn)度條效果

    Android實(shí)現(xiàn)蝸牛進(jìn)度條效果

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)蝸牛進(jìn)度條效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • Flutter?異步編程之單線程下異步模型圖文示例詳解

    Flutter?異步編程之單線程下異步模型圖文示例詳解

    這篇文章主要為大家介紹了Flutter?異步編程之單線程下異步模型圖文示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09

最新評(píng)論