經常使用adb命令彙總(絕對乾貨)

本文彙總了開發中經常使用的adb命令,熟悉這些命令在某些場景會極大的提升開發效率,絕對的乾貨。文中全部參數以$開頭,實際使用時替換爲真正參數便可。android

###1、啓動/關閉類shell

  1. 啓動activity

隱式action方式:性能優化

adb shell am start -a ${your_action_name}
複製代碼

顯示activity方式:bash

adb shell am start -n ${your_package_name}/${your_activity_name}
複製代碼

顯式(-n)與隱式(-a)的指令也適用於服務和廣播。app

  1. 添加啓動參數

若是要添加啓動參數則在以上命令後面繼續添加以下配置:佈局

  • string 類型: --es ${paramterkey} ${value}
  • int 類型: --ei ${paramterkey} ${value}
  • boolean類型: --ez ${paramter_key} ${value} 多個參數以空格分隔,其餘參數類型可自行google查閱,此方式也適用於service和廣播,舉個栗子
adb shell am start -a com.xxxx.business.action --es name 'zhangsan' --ei age 18
複製代碼
  1. 發送廣播
adb shell am broadcast -a ${broad_action_name}
複製代碼
  1. 啓動服務
adb shell am startservice -n ${your_package_name}/${your_service_name}
//中止服務
adb shell am stopservice -n ${your_package_name}/${your_service_name}
複製代碼
  1. 啓動安裝應用對話框
adb shell am start -a android.intent.action.VIEW -d ${your_apk_file_absolute_path} -t application/vnd.android.package-archive
好比路徑是sdcard 則參數可爲 file:///sdcard/test.apk
複製代碼
  1. 強制退出進程
adb shell am force-stop ${your_package_name}
複製代碼

###2、調試類性能

  1. 打開/關閉佈局邊界,簡直是調整UI問題的神器啊有木有
//打開
adb shell setprop debug.layout true 
//關閉
adb shell setprop debug.layout false
複製代碼
  1. 切換window大小和density 作適配的時候太經常使用了,根本不用拿着那麼多機器調試,可是前提是隻能調低而不能調高,所以選擇一款分辨率最高的機器測試就行了。
//調整屏幕分辨率
adb shell wm size 1920x1080
//調整density
adb shell wm density 240
複製代碼
  1. 截圖 你是否是以爲AS裏的一個按鈕已經很好用了,我仍是以爲太麻煩,並且最新的AS3.0已經不支持4.4及之前的機型了。因此乾脆來個腳本吧,至關給力。
#!/bin/sh
#截圖
ls_date=`date +%Y%m%d%H%M%S`
//截圖
adb shell /system/bin/screencap -p /sdcard/screenshot_${ls_date}.png
#從SD卡導出到本機當前目錄
adb pull /sdcard/screenshot_${ls_date}.png .
複製代碼
  1. 抓log 這就屬於常規操做了,基本上都會吧,我經常使用的配置以下
//線程、進程名稱在涉及到多應用間調試是很關鍵的信息
adb logcat -v threadtime > log_xxxx.txt
複製代碼
  1. 檢查服務存活性 不用說,一行命令打印service是否存活對調試而言簡直不能更方便
加上|grep可支持模糊查詢
adb shell dumpsys activity services |grep ${your_service_name}
複製代碼
  1. 打印activity stack狀況 有了這個命令,你還擔憂透明的activity嘛,打印出的信息已經涵蓋了全部stack 及其task及其中activity的全部狀態信息。另外dumpsys 指令至關強大,還能打印cpu、battery等硬件的信息。
adb shell dumpsys activity activities
複製代碼

由此命令再加上一個參數可直接打印頂層activity名稱測試

adb shell dumpsys activity | grep mFocusedActivity
複製代碼
  1. 打印window狀況 同activity相似
adb shell dumpsys window -w
複製代碼

由此命令再加上一個參數可直接打印頂層activity名稱優化

adb shell dumpsys activity | grep mFocusedActivity
複製代碼
  1. 清除所有應用數據
adb shell pm clear ${your_package_name}
複製代碼
  1. 打印apk包信息 若是apk未安裝
aapt dump badging ${your_apk_file_path}
複製代碼

若是已經安裝ui

adb shell dumpsys package ${your_package_name}
複製代碼
  1. 打印manifest內容
aapt dump xmltree ${your_apk_file_path} AndroidManifest.xml
複製代碼
  1. 殺死執行包名的進程
adb shell am force-stop ${your_package_name} 
複製代碼
  1. 打印設置全部屬性信息,這些信息在system/build.prop文件中
adb shell getprop
複製代碼

3、性能優化

  1. GPU呈現模式,幀率的重要指標
adb shell setprop debug.hwui.profile visual_bars (柱形圖)
adb shell setprop debug.hwui.profile visual_lines (折線圖)
複製代碼
  1. 過渡繪製
//執行完後須要殺死進程重啓
adb shell setprop debug.hwui.overdraw show
//關閉過分繪製 從新打開界面生效
adb shell setprop debug.hwui.overdraw false 
複製代碼
  1. 打印內存信息
adb shell procrank|grep ${your_package_name}
adb shell dumpsys meminfo ${your_package_name}(更詳細一些)
複製代碼
  1. activty啓動時間
adb shell am start -W ${your_package_name}/${your_activity_name}
複製代碼
相關文章
相關標籤/搜索