Android adb 命令學習記錄

Android adb 命令學習記錄

通過 wifi 連接手機

有些時候,我們手頭上沒有數據線,這個時候想調試一個應用就不是很方便了。其實這個時候我們可以通過 wifi 來連接手機並調試。通過 wifi 連接手機並調試需要手機和電腦處於同一個局域網,要是公司沒有 wifi 可以考慮自己買個無線路由。

當手機和電腦處於同一個局域網的時候可以用下面的命令來連接手機。

adb connect device-ip

device-ip 是你手機局域網的 ip 地址。

但是有時候我們發現還是連不上,這可能是你的手機沒有打開 TCP/IP 連接方式,在 root 的情況下,可以嘗試輸入一下的命令。

setprop service.adb.tcp.port 5555
stop adbd
start adbd

強大的 dumpsys 命令

dumpsys 命令是一個很強大且有效的命令,可以做很多的事情,我們詳細說下

打印某個應用的內存信息

想查看某個應用內存信息的時候,可以嘗試 adb 連接手機後,輸入一下的命令:

adb shell dumpsys meminfo package_name

package_name 是你的應用包名。輸入命令後大概會輸出一下的信息。

Applications Memory Usage (kB):
Uptime: 1119644 Realtime: 1119644

** MEMINFO in pid 2577 [package_name] **
                   Pss  Private  Private  Swapped     Heap     Heap     Heap
                 Total    Dirty    Clean    Dirty     Size    Alloc     Free
                ------   ------   ------   ------   ------   ------   ------
  Native Heap    57222    57180        0        0    59736    46696    13039
  Dalvik Heap    73199    73152        0        0    78501    64370    14131
 Dalvik Other     1944     1944        0        0
        Stack      964      964        0        0
       Ashmem    18968    14920        0        0
    Other dev        9        0        8        0
     .so mmap    11524     1920     6296        0
    .apk mmap      679        0      348        0
    .ttf mmap       11        0        0        0
    .dex mmap     9485       20     9336        0
    .oat mmap     3678        0     1080        0
    .art mmap     1765     1464        4        0
   Other mmap      833       60      320        0
      Unknown    22557    22556        0        0
        TOTAL   202838   174180    17392        0   138237   111066    27170

 App Summary
                       Pss(KB)
                        ------
           Java Heap:    74620
         Native Heap:    57180
                Code:    19000
               Stack:      964
            Graphics:        0
       Private Other:    39808
              System:    11266

               TOTAL:   202838      TOTAL SWAP (KB):        0

 Objects
               Views:     1023         ViewRootImpl:        1
         AppContexts:        4           Activities:        3
              Assets:        6        AssetManagers:        6
       Local Binders:       48        Proxy Binders:       54
       Parcel memory:       12         Parcel count:       50
    Death Recipients:        3      OpenSSL Sockets:        0

 SQL
         MEMORY_USED:        0
  PAGECACHE_OVERFLOW:        0          MALLOC_SIZE:       62

App Summary 列出的是 app 的概要信息。

Objects 列出的是一些實例的個數,比如這個例子裏面 View 有 1023 個。

通過這些信息可以初步判斷 app 的運行狀況。

打印 Activity 的信息

adb shell dumpsys activity top

上面的這個命令會打印最上面的 activity 的詳情。

am 命令

打印當前堆棧

am dumpheap /mnt/sdcard/xxxx.hprof

發送一個廣播

adb shell am broadcast -a "action"

tcpip 命令

打開 wifi 調試,如果電腦和設備處於同一個局域網,沒有數據線,可以試試這個命令打開局域網調試

adb tcpip 5555

通過 wifi 連接

adb connect device_ip_address

打印日誌

打印日誌很常見也很重要的需求。

adb logcat

adb logcat -v time 可以打印日誌時間

adb shell 命令相關功能

GPU 呈現模式

打開

adb shell setprop debug.hwui.profile visual_bars

關閉

adb shell setprop debug.hwui.profile false

軟後殺掉進程,重新打開即可。

藍線: 表示繪製界面的時間,如果超過綠色橫線,那麼表示有掉幀

紅線: 表示渲染引擎計算界面花的時間,高度表示界面比較複雜

橙線: 表示 cpu 通知 gpu 完成繪製的時間,高度越高,表示 gpu 越忙。

具體意義可以參考 Android開發者選項——GPU呈現模式分析

過渡繪製

打開

adb shell setprop debug.hwui.overdraw show

關閉

adb shell setprop debug.hwui.overdraw false

無色: 沒有過度繪製。

藍色: 有一層過度繪製。

綠色: 有兩層過度繪製。

淺紅: 有三層過度繪製。

深紅: 有四層過度繪製。

性能分析

vmstat 命令

這個命令可以用來監控系統的整體情況

vmstat

輸出結果字段說明

procs

r: 表示正在運行的進程數量
b: 表示等待 IO 的進程數量

memory

free 空閒的物理內存
mapped

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