android 調試常用命令

目錄(?)[+]

Android應用開發過程中,熟悉常用的adb調試命令往往能事半功倍,再此做一個彙總記錄。

adb shell vm 命令

adb shelll vm 命令在4.3以後的版本纔可用,使用它可以方便的查看或者設置屏幕的分辨率、密度。

  • adb shell vm size 
    查看分辨率,我本機的輸出結果如下: 
    Physical size: 720x1280 
    如果想要設置成其他分辨率,在size 後面加上想要的參數即可,比如 
    adb shell vm size 720x1080
  • adb shell vm density 
    查看屏幕密度,我本機輸出結果如下: 
    Physical density: 320 
    同樣density後面也可已加上想要的密度值,比如 
    adb shell wm density 200

  • adb shell wm overscan 
    設置窗口的顯示位置,比如想讓界面在靠左200, 靠上300,靠右400 , 靠下500的顯示區域顯示 ,可以這樣設置 
    adb shell wm overscan 200,300,400,500

通過vm設置的值手機重啓後依然生效,如果想回復默認的,可以參考下面的設置方法 
adb shell wm density reset

adb shell svc命令

svc 命令可以控制電源、數據流量、wifi、usb的開關狀態,用法如下

Available commands:
    help     Show information about the subcommands
    power    Control the power manager
    data     Control mobile data connectivity
    wifi     Control the Wi-Fi manager
    usb      Control Usb state
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

比如要直接打開wifi可以用如下的命令方式 
adb shell svc wifi enable

adb shell settings命令

settings命令可以更加方便的查看、更改SettingsProvider數據庫的值,有了它不用在通過Sqlite3命令操作Settins數據庫了。用法如下:

usage:  settings [--user NUM] get namespace key
        settings [--user NUM] put namespace key value
        settings [--user NUM] delete namespace key

'namespace' is one of {system, secure, global}, case-insensitive
If '--user NUM' is not given, the operations are performed on the owner user.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

比如存放在Settings數據庫global表中的字段airplane_mode_on表明是否開啓了飛行模式,可以通過 
adb shell settings get global airplane_mode_on 
直接看到它的值,方便debug工作。

adb shell content命令

adb shell content 命令可以直接通過命令行對contentprovider數據集進行增刪改查操作,非常利於debug功做。 
比如要查看系統media數據庫裏存放的圖片記錄,可以通過命令: 
adb shell content query --uri content://media/external/images/media直接查看,相對與Sqlite3命令更爲快捷。下圖是用該命令測試的結果: 
這裏寫圖片描述
如果要更改_id=3082這條數據的title字段可以通過命令: 
adb shell content update --uri content://media/external/images/media/3082 --bind title:s:test.png 
來實現,測試結果如下圖: 
這裏寫圖片描述

adb shell pm命令

pm(package manager)命令方便查看系統當前安裝包的一些狀態,功能強大,選取幾個我經常使用的場景.更多的使用方法直接輸入adb shell pm查看輸出幫助。

  • 清除應用數據。 
    在Launcher開發的時候,更新完成桌面應用圖標的位置後,如果要查看顯示效果,就必須先把Launcher的數據清除,否則新的改動不會生效。這個時候可以用clear命令一步完成。 
    adb shell pm clear com.android.launcher
  • 查看當前安裝的所有 apk。 
    整機開發的時候,經常需要查看下當前手機安裝了哪些應用,可以通過 
    adb shell pm list packages查看 
    查看包名和文件名對應表adb shell pm list packages -f 
    查看安裝的第三方應用adb shell pm list packages -3
  • 禁止或啓用一個應用 
    禁止一個應用adb shell pm disable [packagename] 
    開啓一個應用adb shell pm enable [packagename]

adb shell am

am(activity manager) 命令方便調試應用的活動行爲,它的使用場景比較多。網上的使用說明也比較多,不多加說明了。選常用的兩個

  • 啓動一個activity 
    adb -d shell am start -n com.google.android.setupwizard/.SetupWizardTestActivity
  • 模擬發送廣播 
    在開發SystemUI時,涉及到SIM卡狀態顯示的debug工作,模擬發送廣播就非常有用了。 
    adb shell am broadcast -a android.intent.action.SIM_STATE_CHANGED --es ss ABSENT --ei slot 1

adb shell dumpsys

dumpsys 命令常用來查看activity的堆棧信息,比如 
adb shell dumpsys activity activities 
也可以查看電池信息adb shell dumpsys battery 
還可以查看某個安裝包的詳細信息 
adb shell dumpsys package com.google.android.googlequicksearchbox 
和grep命令結合可以過濾出關心的信息,比如要查看googlequicksearchbox的版本就可以使用下面的命令 
adb shell dumpsys package com.google.android.googlequicksearchbox|g 
rep versionName

adb shell screencap/screenrecord

截屏adb shell screencap -p /sdcard/test.png 
錄屏adb shell screenrecord --time-limit 10 --bit-rate 6000000 /sdcard/demo.mp4

aapt命令

aapt命令可以用來查看一個apk包含的資源類信息,比如版本號,權限等。它位於SDK下的build-tools目錄裏。使用說明如下圖: 
這裏寫圖片描述

2
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章