adb,logcat使用及對Android設(shè)備的操作

adb,logcat使用及對Android設(shè)備的操作

adb常用命令

  • 查看連接到本機的所有的設(shè)備命令:adb devices 執(zhí)行結(jié)果如下:

    E:\xiao\src\android_camera>adb devices
    List of devices attached
    emulator-5590   host
    68653344        device
    emulator-5660   host
    emulator-5608   host
    
  • 使用adb登錄到指定設(shè)備命令:adb -s "device" shell
    如果連接本機的設(shè)備只有一個可以直接使用命令adb shell
    例如:

      E:\xiao\src\android_camera>adb -s 68653344 shell
      libra:/ $
    
    

    如果是網(wǎng)絡(luò)設(shè)備,則填寫ip地址和端口號。例如:

      $ adb -s 172.17.159.159:5555 shell
    
  • 安裝app

$ adb -s 172.17.159.159:5555 install c:\EPG.apk
單設(shè)備連接時
$ adb install c:\EPG.apk
當安裝時提示已安裝需要卸載時使用如下命令覆蓋安裝
$ adb install -r c:\EPG.apk
  • 卸載app
$ adb uninstall "包名"
$ adb uninstall -k "包名"
  • 連接與斷開網(wǎng)絡(luò)設(shè)備
$ adb connect 172.17.122.122
$ adb disconnect
  • 發(fā)送和拉取文件
發(fā)送到設(shè)備
$ adb push <本地路徑> <遠程路徑>
拉取文件到本地
$ adb pull <遠程路徑> <本地路徑>

對android設(shè)備進行操作

登錄設(shè)備后我們就可以通過命令行對設(shè)備進行操作了

  • 查看網(wǎng)絡(luò)
# netcfg
  • 重新掛載分區(qū)
例如將/system分區(qū)掛載為可讀寫狀態(tài)
# mount -o rw,remount /system
  • 查看應用使用內(nèi)存信息dumpsys meminfo <包名 或 pid>
# dumpsys meminfo ican.ytx.com.videosummary
或
# dumpsys meminfo 14087

am 命令,am全稱activity manager,你能使用am去模擬各種系統(tǒng)的行為,例如去啟動一個activity,強制停止進程,發(fā)送廣播進程,修改設(shè)備屏幕屬性等等

  • 撥打電話
# am start -a android.intent.action.CALL -d tel:10086
這里-a表示動作,-d表述傳入的數(shù)據(jù),還有-t表示傳入的類型。
  • 打開一個網(wǎng)頁
# am start -a android.intent.action.VIEW -d  http://www.baidu.com (這里-d表示傳入的data)
  • 打開音樂播放器
# am start -a android.intent.action.MUSIC_PLAYER
或者使用 包名和應用名,可以在Androidmanifest.xml文件查看到
# am start -n com.android.music/com.android.music.MusicBrowserActivity
//am start -n ican.ytx.com.videosummary/ican.ytx.com.videosummary.MainActivity
  1. start [options] <INTENT> :啟動activity通過指定的intent參數(shù)
  2. startservice [options] <INTENT> : 啟動service通過指定的intent參數(shù)
  3. force-stop <PACKAGE> : 強制停止指定的package包應用
  4. broadcast [options] <INTENT> :發(fā)送一個intent。具體intent參數(shù)參照start命令參數(shù)
  • 啟動一個服務(wù)am startservice <服務(wù)名稱>
例如:am startservice -n com.android.music/com.android.music.MediaPlaybackService (這里-n表示組件)
或者:am startservice -a com.smz.myservice (這里-a表示動作,就是你在Androidmanifest里定義的)
  • 發(fā)送一個廣播am broadcast -a <廣播動作>
例如1: am broadcast -a com.smz.mybroadcast
例如2: am broadcast -a android.intent.action.MEDIA_MOUNTED -d file:///storage/usb/Android
  • 截圖
# /system/bin/screencap -p /sdcard/screenshot.png

logcat使用

  • logcat命令行選項
選項 說明
-b <buffer> 加載可供查看的備用日志緩沖區(qū),如 events 或 radio。默認情況下使用 main 緩沖區(qū)
-c 清除(刷新)整個日志并退出。
-d 將日志轉(zhuǎn)儲到屏幕并退出。
-f <filename> 將日志消息輸出寫入 <filename>。默認值為 stdout。
-g 打印指定日志緩沖區(qū)的大小并退出。
-n <count> 將已旋轉(zhuǎn)日志的最大數(shù)量設(shè)置為 <count>。默認值為 4。 需要使用 -r 選項。
-r <kbytes> 每輸出 <kbytes> 時旋轉(zhuǎn)日志文件。默認值為 16。需要使用 -f 選項。
-s 將默認過濾器規(guī)則設(shè)為靜默式。
-v <format> 設(shè)置日志消息的輸出格式。默認值為 brief 格式有關(guān)支持的格式列表,請參閱"控制日志輸出格式"

詳細使用參考這里

常用過濾方法

  • 過濾指定包名的log
step 1 通過包名獲取進程pid
# ps | grep "com.ytx.ican.tcpupdate"
step 2 通過pid過濾log,例如pid為5505
# logcat -v time | grep "5505"
  • 靜默掉相應的TAG
    • 下面的命令通過靜默級別S來過濾掉TAG為MyCameradecode_difftime的信息
    • 下面命令含義為過濾pid為 5505 進程,顯示格式為time(顯示日期、調(diào)用時間、優(yōu)先級/標記以及發(fā)出消息的進程的 PID),顯示TAG等級高于DEBUG的信息同時過濾掉包含MyCameradecode_difftime的信息
logcat -v time *:d MyCamera:S decode_difftime:S | grep "5505"
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容